Denver Nuggets Players Analysis

denver.jpg The Denver Nuggets, a prominent team in the NBA, have consistently showcased a roster filled with talent and versatility. This analysis delves into the performance metrics and contributions of key players, providing insights into their strengths and areas for improvement. By examining statistical data, we can better understand how each player impacts the team's overall success and identify trends that could influence future strategies.

Key Players and Their Contributions¶

  1. Nikola Jokic: As the cornerstone of the Nuggets, Jokic's exceptional skills in scoring, rebounding, and playmaking have earned him multiple MVP awards. His ability to consistently deliver triple-doubles makes him a pivotal player in the team's lineup.

  2. Jamal Murray: Known for his scoring prowess and clutch performances, Murray's dynamic playstyle complements Jokic's versatility. His ability to perform under pressure is crucial during critical moments in games.

  3. Michael Porter Jr.: Porter's scoring ability and three-point shooting provide the Nuggets with a valuable offensive weapon. His contributions are vital in stretching the floor and creating scoring opportunities.

  4. Aaron Gordon: Gordon's athleticism and defensive capabilities add a significant dimension to the Nuggets' gameplay. His versatility allows him to guard multiple positions and contribute on both ends of the court.

  5. Russell Westbrook: Westbrook has an EFF score of 600. Known for his explosive athleticism and triple-double capabilities, he brings energy and intensity to the court.

  6. Christian Braun: As a promising young talent, Braun's all-around game and defensive tenacity make him a valuable asset. His development will be key to the Nuggets' future success.

Analytical Approach¶

This analysis will utilize various statistical metrics, including points per game, shooting percentages, rebounds, assists, and efficiency ratings, to evaluate player performance. By leveraging data visualization tools, we can identify patterns and trends that highlight each player's impact on the team's performance.

In [ ]:
 
In [27]:
import pandas as pd
import numpy as np
In [28]:
# Display all columns
pd.set_option("display.max_columns", None)
pd.set_option("display.max_rows", None)
In [29]:
from matplotlib.offsetbox import OffsetImage, AnnotationBbox
from matplotlib.patches import FancyBboxPatch
import matplotlib.transforms as transforms
import matplotlib.gridspec as gridspec
import matplotlib.ticker as mtick
import matplotlib.pyplot as plt
from matplotlib import style, offsetbox
import seaborn as sns
import matplotlib

style.use('ggplot')

%matplotlib inline
#sns.set_palette("dark")
#style.use('ggplot')

#sns.set_style('darkgrid')
matplotlib.rcParams['font.size'] = 15
matplotlib.rcParams['font.weight'] = 'bold'
#matplotlib.rcParams['figure.figsize'] = (50, 20)
#matplotlib.rcParams['figure.facecolor'] = '#00000000'
In [30]:
nugget_regular_season_df = pd.read_csv('2024-2025 Denver Nuggets Players Stats.csv')
In [31]:
nugget_regular_season_df 
Out[31]:
Date Hm/Aw Opp W/L MIN Pts PLAYER FGM FGA FG% 3PM 3PA 2PM 2PA FTM FTA OREB DREB REB AST STL BLK TOV PF +/- EFF
0 2024-10-25 vs OKC L 35 16 Nikola Jokic 6 13 46.2% 1 3 5 10 3 4 4 8 12 13 2 1 3 3 -9 33
1 2024-10-25 vs OKC L 29 16 Christian Braun 8 15 53.3% 0 3 8 12 0 0 2 5 7 1 2 2 3 1 8 18
2 2024-10-25 vs OKC L 32 15 Michael Porter 5 17 29.4% 3 10 2 7 2 2 1 7 8 2 1 0 1 2 -2 13
3 2024-10-25 vs OKC L 33 12 Aaron Gordon 5 12 41.7% 0 1 5 11 2 2 5 4 9 2 1 0 2 1 -4 15
4 2024-10-25 vs OKC L 38 12 Jamal Murray 4 13 30.8% 2 5 2 8 2 2 2 4 6 4 2 0 3 2 -2 12
5 2024-10-25 vs OKC L 21 6 Russell Westbrook 2 10 20.0% 1 6 1 4 1 4 1 4 5 5 1 2 2 0 -24 6
6 2024-10-25 vs OKC L 17 6 Julian Strawther 3 6 50.0% 0 2 3 4 0 0 0 0 0 1 1 0 1 2 -23 4
7 2024-10-25 vs OKC L 15 2 Peyton Watson 1 7 14.3% 0 4 1 3 0 0 2 4 6 1 0 2 0 0 -13 5
8 2024-10-25 vs OKC L 11 2 Dario Saric 1 2 50.0% 0 1 1 1 0 0 0 1 1 0 1 0 0 1 -6 3
9 2024-10-25 vs OKC L 2 0 Trey Alexander 0 0 - 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1
10 2024-10-25 vs OKC L 2 0 Vlatko Cancar 0 0 - 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1
11 2024-10-25 vs OKC L 2 0 Hunter Tyson 0 1 0.0% 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0
12 2024-10-25 vs OKC L 2 0 Jalen Pickett 0 1 0.0% 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
13 2024-10-25 vs OKC L 2 0 Zeke Nnaji 0 1 0.0% 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
14 2024-10-26 vs LAC L 37 41 Nikola Jokic 14 26 53.8% 7 12 7 14 6 8 3 6 9 4 2 1 5 2 7 38
15 2024-10-26 vs LAC L 37 22 Jamal Murray 7 14 50.0% 3 6 4 8 5 5 0 2 2 5 2 0 2 1 6 22
16 2024-10-26 vs LAC L 34 11 Christian Braun 4 6 66.7% 1 1 3 5 2 2 1 6 7 1 1 2 1 3 1 19
17 2024-10-26 vs LAC L 36 10 Aaron Gordon 3 10 30.0% 1 4 2 6 3 4 2 3 5 2 1 0 0 2 2 10
18 2024-10-26 vs LAC L 38 9 Michael Porter 4 13 30.8% 0 6 4 7 1 1 2 7 9 3 2 0 1 2 3 13
19 2024-10-26 vs LAC L 16 8 Julian Strawther 3 5 60.0% 2 2 1 3 0 0 1 1 2 3 2 0 1 5 -12 12
20 2024-10-26 vs LAC L 19 2 Russell Westbrook 0 8 0.0% 0 3 0 5 2 2 0 1 1 2 2 1 0 4 -13 0
21 2024-10-26 vs LAC L 12 1 Peyton Watson 0 3 0.0% 0 1 0 2 1 2 0 0 0 0 1 0 0 1 -7 -2
22 2024-10-26 vs LAC L 11 0 Dario Saric 0 2 0.0% 0 0 0 2 0 0 1 1 2 0 0 0 0 2 -12 0
23 2024-10-29 @ TOR W 44 40 Nikola Jokic 18 27 66.7% 3 5 15 22 1 2 3 7 10 4 1 2 3 2 9 44
24 2024-10-29 @ TOR W 40 17 Jamal Murray 6 20 30.0% 0 2 6 18 5 5 1 8 9 7 1 0 0 2 8 20
25 2024-10-29 @ TOR W 40 17 Christian Braun 6 11 54.5% 1 4 5 7 4 4 2 2 4 2 1 1 1 3 8 19
26 2024-10-29 @ TOR W 42 16 Aaron Gordon 4 8 50.0% 2 2 2 6 6 8 5 6 11 8 2 1 5 2 11 27
27 2024-10-29 @ TOR W 39 13 Michael Porter 6 12 50.0% 1 4 5 8 0 1 2 7 9 2 0 1 1 3 -10 17
28 2024-10-29 @ TOR W 18 9 Russell Westbrook 3 7 42.9% 0 1 3 6 3 4 1 3 4 3 1 0 2 4 -1 10
29 2024-10-29 @ TOR W 22 9 Julian Strawther 3 3 100.0% 2 2 1 1 1 2 0 2 2 0 0 0 1 3 1 9
30 2024-10-29 @ TOR W 15 6 Peyton Watson 1 5 20.0% 0 0 1 5 4 4 1 1 2 2 0 1 1 1 -7 6
31 2024-10-29 @ TOR W 5 0 Dario Saric 0 3 0.0% 0 0 0 3 0 0 0 1 1 1 0 0 2 0 -9 -3
32 2024-10-30 @ BRK W 41 29 Nikola Jokic 9 16 56.3% 0 0 9 16 11 13 6 12 18 16 0 1 1 3 8 54
33 2024-10-30 @ BRK W 33 24 Aaron Gordon 8 11 72.7% 1 3 7 8 7 7 1 4 5 2 0 1 1 3 5 28
34 2024-10-30 @ BRK W 37 24 Jamal Murray 8 19 42.1% 2 7 6 12 6 8 0 3 3 3 0 0 1 3 3 16
35 2024-10-30 @ BRK W 21 22 Russell Westbrook 5 12 41.7% 2 2 3 10 10 10 0 1 1 5 1 0 1 2 0 21
36 2024-10-30 @ BRK W 41 16 Michael Porter 6 11 54.5% 4 7 2 4 0 1 1 4 5 2 1 0 0 2 6 18
37 2024-10-30 @ BRK W 39 12 Christian Braun 3 7 42.9% 2 3 1 4 4 6 0 3 3 3 0 2 0 4 9 14
38 2024-10-30 @ BRK W 22 7 Julian Strawther 3 6 50.0% 1 3 2 3 0 0 0 4 4 0 1 0 1 0 -3 8
39 2024-10-30 @ BRK W 20 7 Peyton Watson 3 5 60.0% 1 2 2 3 0 0 0 2 2 0 0 0 0 5 0 7
40 2024-10-30 @ BRK W 12 3 Dario Saric 1 2 50.0% 0 0 1 2 1 2 1 1 2 0 0 0 0 0 -3 3
41 2024-11-02 @ MIN L 38 31 Aaron Gordon 11 18 61.1% 5 7 6 11 4 5 4 7 11 2 1 0 0 2 8 37
42 2024-11-02 @ MIN L 40 26 Nikola Jokic 8 16 50.0% 2 3 6 13 8 10 2 7 9 13 3 1 3 1 6 39
43 2024-11-02 @ MIN L 39 26 Michael Porter 11 18 61.1% 3 7 8 11 1 2 2 4 6 4 2 0 3 2 -5 27
44 2024-11-02 @ MIN L 36 14 Christian Braun 5 11 45.5% 1 3 4 8 3 3 2 5 7 2 0 0 2 4 13 15
45 2024-11-02 @ MIN L 22 6 Jamal Murray 2 7 28.6% 0 3 2 4 2 2 0 2 2 3 1 0 0 0 8 7
46 2024-11-02 @ MIN L 25 5 Russell Westbrook 1 8 12.5% 0 3 1 5 3 4 3 3 6 5 2 1 4 2 -13 7
47 2024-11-02 @ MIN L 16 4 Julian Strawther 1 4 25.0% 0 2 1 2 2 3 1 0 1 1 1 0 1 5 -13 2
48 2024-11-02 @ MIN L 6 2 Hunter Tyson 1 1 100.0% 0 0 1 1 0 0 0 1 1 0 0 0 0 1 1 3
49 2024-11-02 @ MIN L 14 2 Peyton Watson 1 6 16.7% 0 2 1 4 0 0 1 0 1 0 1 0 0 1 -9 -1
50 2024-11-02 @ MIN L 5 0 Dario Saric 0 3 0.0% 0 2 0 1 0 0 2 0 2 0 0 0 0 0 -11 -1
51 2024-11-03 vs UTAH W 30 27 Nikola Jokic 10 18 55.6% 3 4 7 14 4 4 5 11 16 9 1 0 5 1 31 40
52 2024-11-03 vs UTAH W 29 20 Michael Porter 7 12 58.3% 4 6 3 6 2 2 0 5 5 2 0 0 0 1 25 22
53 2024-11-03 vs UTAH W 19 19 Julian Strawther 7 11 63.6% 3 6 4 5 2 2 1 1 2 0 2 0 1 5 12 18
54 2024-11-03 vs UTAH W 33 17 Christian Braun 6 11 54.5% 3 5 3 6 2 2 0 2 2 3 2 0 1 3 21 18
55 2024-11-03 vs UTAH W 26 12 Aaron Gordon 5 9 55.6% 2 3 3 6 0 0 2 4 6 5 0 0 0 2 28 19
56 2024-11-03 vs UTAH W 20 8 Peyton Watson 2 9 22.2% 0 1 2 8 4 4 3 1 4 1 3 0 2 2 -3 7
57 2024-11-03 vs UTAH W 25 7 Hunter Tyson 2 5 40.0% 0 2 2 3 3 3 1 3 4 4 0 0 0 2 5 12
58 2024-11-03 vs UTAH W 4 6 Zeke Nnaji 3 3 100.0% 0 0 3 3 0 0 0 0 0 1 0 1 0 3 2 8
59 2024-11-03 vs UTAH W 14 6 DeAndre Jordan 3 7 42.9% 0 0 3 7 0 2 6 3 9 1 0 0 4 2 -7 6
60 2024-11-03 vs UTAH W 31 5 Russell Westbrook 2 11 18.2% 1 4 1 7 0 4 1 2 3 7 5 0 4 4 12 3
61 2024-11-03 vs UTAH W 4 2 Trey Alexander 1 3 33.3% 0 1 1 2 0 0 0 0 0 0 0 0 0 0 2 0
62 2024-11-03 vs UTAH W 2 0 Spencer Jones 0 0 - 0 0 0 0 0 0 0 1 1 0 1 0 0 0 1 2
63 2024-11-03 vs UTAH W 2 0 Jalen Pickett 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0
64 2024-11-05 vs TOR W 38 28 Nikola Jokic 10 22 45.5% 1 5 9 17 7 8 5 9 14 13 1 2 7 2 -1 38
65 2024-11-05 vs TOR W 34 21 Russell Westbrook 6 10 60.0% 1 5 5 5 8 10 1 5 6 6 1 1 4 4 -3 25
66 2024-11-05 vs TOR W 36 19 Michael Porter 7 16 43.8% 3 10 4 6 2 3 4 5 9 3 1 1 2 2 1 21
67 2024-11-05 vs TOR W 36 17 Christian Braun 7 11 63.6% 1 2 6 9 2 4 1 3 4 0 1 0 0 2 5 16
68 2024-11-05 vs TOR W 31 16 Peyton Watson 4 7 57.1% 1 2 3 5 7 9 1 2 3 1 2 2 1 5 9 18
69 2024-11-05 vs TOR W 26 13 Julian Strawther 4 10 40.0% 2 4 2 6 3 4 0 2 2 3 2 1 1 2 -1 13
70 2024-11-05 vs TOR W 4 3 Aaron Gordon 1 2 50.0% 1 2 0 0 0 0 0 0 0 1 0 0 1 1 1 2
71 2024-11-05 vs TOR W 6 2 DeAndre Jordan 1 1 100.0% 0 0 1 1 0 0 1 3 4 1 0 1 1 1 3 7
72 2024-11-05 vs TOR W 14 2 Zeke Nnaji 1 3 33.3% 0 1 1 2 0 0 1 0 1 1 0 1 0 0 -2 3
73 2024-11-05 vs TOR W 15 0 Hunter Tyson 0 1 0.0% 0 1 0 0 0 0 0 1 1 0 1 1 0 2 -2 2
74 2024-11-07 vs OKC W 32 29 Russell Westbrook 10 15 66.7% 3 4 7 11 6 9 1 5 6 6 1 0 4 4 -14 30
75 2024-11-07 vs OKC W 37 24 Christian Braun 7 14 50.0% 4 8 3 6 6 6 1 7 8 0 2 1 2 2 6 26
76 2024-11-07 vs OKC W 41 24 Michael Porter 7 16 43.8% 6 10 1 6 4 4 1 6 7 3 1 0 1 3 4 25
77 2024-11-07 vs OKC W 39 23 Nikola Jokic 9 20 45.0% 1 3 8 17 4 6 7 13 20 16 2 2 5 2 8 45
78 2024-11-07 vs OKC W 34 10 Peyton Watson 4 9 44.4% 1 4 3 5 1 4 0 3 3 3 1 3 2 3 7 10
79 2024-11-07 vs OKC W 27 9 Julian Strawther 3 11 27.3% 1 7 2 4 2 2 2 3 5 6 0 0 2 4 12 10
80 2024-11-07 vs OKC W 10 3 Zeke Nnaji 1 2 50.0% 0 1 1 1 1 2 1 1 2 0 0 0 0 0 -7 3
81 2024-11-07 vs OKC W 19 2 Hunter Tyson 1 2 50.0% 0 1 1 1 0 0 0 4 4 0 1 0 2 4 -6 4
82 2024-11-09 vs MIA W 40 30 Nikola Jokic 11 13 84.6% 1 1 10 12 7 7 2 9 11 14 2 0 5 2 26 50
83 2024-11-09 vs MIA W 35 28 Jamal Murray 9 17 52.9% 4 10 5 7 6 6 0 4 4 6 0 0 4 0 28 26
84 2024-11-09 vs MIA W 35 21 Christian Braun 7 9 77.8% 3 4 4 5 4 6 1 5 6 2 0 1 1 1 14 25
85 2024-11-09 vs MIA W 36 21 Michael Porter 8 15 53.3% 5 10 3 5 0 0 0 5 5 4 2 1 2 2 24 24
86 2024-11-09 vs MIA W 33 16 Peyton Watson 7 11 63.6% 2 3 5 8 0 0 2 3 5 1 1 1 0 3 12 20
87 2024-11-09 vs MIA W 9 7 Hunter Tyson 3 3 100.0% 1 1 2 2 0 0 1 1 2 0 0 0 1 2 -12 8
88 2024-11-09 vs MIA W 24 6 Russell Westbrook 2 5 40.0% 2 3 0 2 0 0 0 4 4 10 0 1 2 2 -5 16
89 2024-11-09 vs MIA W 24 6 Julian Strawther 3 8 37.5% 0 3 3 5 0 0 0 1 1 0 0 1 2 1 -12 1
90 2024-11-09 vs MIA W 3 0 Zeke Nnaji 0 0 - 0 0 0 0 0 0 0 1 1 0 0 0 0 0 -10 1
91 2024-11-11 vs DAL W 38 37 Nikola Jokic 13 21 61.9% 3 3 10 18 8 8 8 10 18 15 3 0 4 2 13 61
92 2024-11-11 vs DAL W 38 18 Jamal Murray 7 17 41.2% 2 6 5 11 2 5 0 2 2 6 0 0 2 3 15 11
93 2024-11-11 vs DAL W 36 17 Michael Porter 6 11 54.5% 2 6 4 5 3 4 0 7 7 4 1 2 0 2 2 25
94 2024-11-11 vs DAL W 40 16 Peyton Watson 6 9 66.7% 4 4 2 5 0 0 1 4 5 1 0 1 0 1 3 20
95 2024-11-11 vs DAL W 35 14 Christian Braun 5 10 50.0% 1 2 4 8 3 4 2 4 6 2 0 0 1 3 8 15
96 2024-11-11 vs DAL W 23 12 Julian Strawther 4 9 44.4% 2 5 2 4 2 3 0 1 1 1 1 2 1 2 -7 10
97 2024-11-11 vs DAL W 20 6 Russell Westbrook 3 10 30.0% 0 2 3 8 0 0 2 2 4 5 1 0 2 2 -13 7
98 2024-11-11 vs DAL W 10 2 Zeke Nnaji 1 2 50.0% 0 1 1 1 0 2 0 2 2 1 0 0 0 1 -11 2
99 2024-11-16 @ NOP L 39 24 Michael Porter 10 18 55.6% 4 7 6 11 0 0 1 5 6 3 0 0 0 3 1 25
100 2024-11-16 @ NOP L 29 18 Peyton Watson 6 12 50.0% 1 5 5 7 5 6 0 5 5 0 1 0 0 1 -4 17
101 2024-11-16 @ NOP L 43 16 Jamal Murray 6 16 37.5% 2 8 4 8 2 2 0 6 6 8 2 0 0 1 0 22
102 2024-11-16 @ NOP L 37 15 Christian Braun 7 12 58.3% 0 2 7 10 1 1 1 3 4 3 5 0 1 3 -11 21
103 2024-11-16 @ NOP L 34 9 Dario Saric 4 9 44.4% 1 5 3 4 0 0 1 7 8 5 1 0 4 4 12 14
104 2024-11-16 @ NOP L 22 5 Russell Westbrook 2 8 25.0% 1 3 1 5 0 0 1 3 4 7 0 0 1 3 -1 9
105 2024-11-16 @ NOP L 20 5 Julian Strawther 1 6 16.7% 1 4 0 2 2 2 0 3 3 0 0 0 1 1 -11 2
106 2024-11-16 @ NOP L 8 2 Vlatko Cancar 1 2 50.0% 0 0 1 2 0 0 1 1 2 0 0 1 0 0 1 4
107 2024-11-16 @ NOP L 6 0 Zeke Nnaji 0 2 0.0% 0 1 0 1 0 0 0 0 0 0 1 0 0 0 -15 -1
108 2024-11-16 @ NOP L 2 0 Hunter Tyson 0 2 0.0% 0 2 0 0 0 0 0 0 0 0 0 0 0 0 -7 -2
109 2024-11-18 @ MEM L 25 19 Julian Strawther 6 13 46.2% 4 7 2 6 3 4 0 4 4 3 1 1 0 2 -11 20
110 2024-11-18 @ MEM L 37 13 Jamal Murray 6 15 40.0% 1 6 5 9 0 0 1 5 6 7 3 2 6 3 -3 16
111 2024-11-18 @ MEM L 34 13 Christian Braun 5 11 45.5% 0 2 5 9 3 4 1 3 4 4 1 0 1 0 -2 14
112 2024-11-18 @ MEM L 23 12 Russell Westbrook 4 10 40.0% 2 3 2 7 2 4 0 3 3 3 1 1 3 1 -10 9
113 2024-11-18 @ MEM L 32 10 Dario Saric 4 10 40.0% 2 5 2 5 0 0 2 8 10 3 2 0 0 1 -5 19
114 2024-11-18 @ MEM L 27 10 Michael Porter 4 12 33.3% 0 4 4 8 2 2 0 3 3 1 0 0 2 1 -15 4
115 2024-11-18 @ MEM L 28 7 Peyton Watson 3 7 42.9% 1 2 2 5 0 0 1 4 5 2 1 1 0 0 -10 12
116 2024-11-18 @ MEM L 14 4 DeAndre Jordan 2 3 66.7% 0 0 2 3 0 0 0 2 2 0 0 0 0 1 -10 5
117 2024-11-18 @ MEM L 13 2 Vlatko Cancar 1 2 50.0% 0 1 1 1 0 0 1 0 1 0 0 0 1 3 -9 1
118 2024-11-18 @ MEM L 1 0 Zeke Nnaji 0 0 - 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0
119 2024-11-18 @ MEM L 1 0 Trey Alexander 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
120 2024-11-18 @ MEM L 1 0 P.J. Hall 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
121 2024-11-18 @ MEM L 1 0 Hunter Tyson 0 1 0.0% 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
122 2024-11-20 @ MEM W 36 27 Jamal Murray 10 20 50.0% 5 10 5 10 2 3 1 3 4 6 3 2 3 2 18 28
123 2024-11-20 @ MEM W 40 24 Michael Porter 11 21 52.4% 0 4 11 17 2 6 5 6 11 3 1 1 0 3 15 26
124 2024-11-20 @ MEM W 34 19 Christian Braun 7 12 58.3% 0 2 7 10 5 6 2 5 7 2 3 0 2 4 22 23
125 2024-11-20 @ MEM W 25 15 Peyton Watson 6 10 60.0% 2 5 4 5 1 1 1 4 5 2 1 1 4 6 8 16
126 2024-11-20 @ MEM W 32 12 Russell Westbrook 5 12 41.7% 1 4 4 8 1 2 1 9 10 14 2 1 5 3 -2 26
127 2024-11-20 @ MEM W 18 8 Dario Saric 2 6 33.3% 2 4 0 2 2 2 0 5 5 1 2 0 3 5 10 9
128 2024-11-20 @ MEM W 20 6 Julian Strawther 2 7 28.6% 1 4 1 3 1 2 0 5 5 0 2 1 0 3 -6 8
129 2024-11-20 @ MEM W 11 5 Vlatko Cancar 2 3 66.7% 1 1 1 2 0 0 1 3 4 0 0 0 1 1 6 7
130 2024-11-20 @ MEM W 8 4 DeAndre Jordan 2 4 50.0% 0 0 2 4 0 0 2 0 2 0 1 0 0 1 5 5
131 2024-11-20 @ MEM W 6 2 Zeke Nnaji 1 2 50.0% 0 1 1 1 0 0 0 0 0 0 0 0 0 0 -7 1
132 2024-11-20 @ MEM W 9 0 Trey Alexander 0 3 0.0% 0 1 0 2 0 0 0 0 0 1 0 0 0 1 -9 -2
133 2024-11-23 vs DAL L 39 33 Nikola Jokic 13 22 59.1% 2 2 11 20 5 7 6 11 17 10 0 0 3 0 4 46
134 2024-11-23 vs DAL L 36 17 Michael Porter 7 12 58.3% 2 3 5 9 1 2 1 4 5 5 0 0 1 4 -7 20
135 2024-11-23 vs DAL L 29 17 Christian Braun 6 9 66.7% 2 3 4 6 3 6 4 1 5 0 1 1 2 2 -9 16
136 2024-11-23 vs DAL L 27 16 Russell Westbrook 5 13 38.5% 4 6 1 7 2 5 0 1 1 4 2 0 1 2 0 11
137 2024-11-23 vs DAL L 40 15 Peyton Watson 7 11 63.6% 1 3 6 8 0 0 1 4 5 3 0 3 2 3 2 20
138 2024-11-23 vs DAL L 39 14 Jamal Murray 4 16 25.0% 4 11 0 5 2 2 0 5 5 11 0 3 3 3 0 18
139 2024-11-23 vs DAL L 5 3 DeAndre Jordan 1 2 50.0% 0 0 1 2 1 2 1 0 1 0 0 0 0 1 -2 2
140 2024-11-23 vs DAL L 17 3 Julian Strawther 0 2 0.0% 0 0 0 2 3 3 0 0 0 0 1 0 0 3 -1 2
141 2024-11-23 vs DAL L 4 2 Dario Saric 0 2 0.0% 0 1 0 1 2 2 2 1 3 0 0 0 1 1 -7 2
142 2024-11-23 vs DAL L 2 0 Trey Alexander 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6 0
143 2024-11-23 vs DAL L 2 0 Hunter Tyson 0 1 0.0% 0 0 0 1 0 0 0 0 0 0 0 0 0 0 -1 -1
144 2024-11-24 @ LAL W 37 34 Nikola Jokic 12 20 60.0% 3 7 9 13 7 8 2 11 13 8 2 1 6 3 39 43
145 2024-11-24 @ LAL W 36 24 Michael Porter 10 15 66.7% 4 7 6 8 0 1 1 10 11 4 1 0 2 2 30 32
146 2024-11-24 @ LAL W 31 16 Christian Braun 7 7 100.0% 2 2 5 5 0 0 0 2 2 3 1 0 2 2 13 20
147 2024-11-24 @ LAL W 24 14 Russell Westbrook 6 10 60.0% 1 4 5 6 1 2 2 5 7 11 1 0 3 3 17 25
148 2024-11-24 @ LAL W 30 14 Jamal Murray 5 12 41.7% 2 4 3 8 2 6 0 5 5 5 1 0 2 2 20 12
149 2024-11-24 @ LAL W 35 11 Peyton Watson 5 8 62.5% 1 1 4 7 0 0 2 3 5 2 0 1 1 1 28 15
150 2024-11-24 @ LAL W 19 6 Julian Strawther 2 3 66.7% 2 2 0 1 0 0 0 2 2 1 0 0 0 3 -12 8
151 2024-11-24 @ LAL W 10 3 Trey Alexander 1 2 50.0% 1 2 0 0 0 0 0 0 0 0 0 0 0 1 8 2
152 2024-11-24 @ LAL W 5 2 DeAndre Jordan 1 1 100.0% 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 4
153 2024-11-24 @ LAL W 3 2 P.J. Hall 1 2 50.0% 0 1 1 1 0 0 0 0 0 0 0 0 0 1 -2 1
154 2024-11-24 @ LAL W 3 1 Hunter Tyson 0 0 - 0 0 0 0 1 2 1 1 2 1 0 0 0 0 -2 3
155 2024-11-24 @ LAL W 4 0 Dario Saric 0 1 0.0% 0 1 0 0 0 0 0 1 1 1 0 0 1 0 -12 0
156 2024-11-24 @ LAL W 3 0 Zeke Nnaji 0 1 0.0% 0 1 0 0 0 0 0 0 0 0 0 0 0 0 -2 -1
157 2024-11-26 vs NYK L 26 27 Russell Westbrook 9 16 56.3% 4 7 5 9 5 5 1 2 3 3 2 1 3 1 -16 26
158 2024-11-26 vs NYK L 32 22 Nikola Jokic 9 20 45.0% 2 7 7 13 2 2 3 4 7 7 1 0 0 1 -20 26
159 2024-11-26 vs NYK L 31 20 Jamal Murray 6 13 46.2% 1 5 5 8 7 9 1 3 4 7 1 0 0 1 -13 23
160 2024-11-26 vs NYK L 34 18 Michael Porter 7 17 41.2% 3 7 4 10 1 1 4 6 10 0 0 0 2 4 -13 16
161 2024-11-26 vs NYK L 32 14 Christian Braun 5 10 50.0% 0 0 5 10 4 4 0 1 1 2 1 1 1 0 -13 13
162 2024-11-26 vs NYK L 22 6 Peyton Watson 2 4 50.0% 0 1 2 3 2 2 0 0 0 0 0 0 1 2 -18 3
163 2024-11-26 vs NYK L 10 5 Hunter Tyson 2 3 66.7% 1 2 1 1 0 0 1 0 1 1 0 0 0 1 -4 6
164 2024-11-26 vs NYK L 23 4 Julian Strawther 1 4 25.0% 0 1 1 3 2 2 0 2 2 1 0 0 1 3 -20 3
165 2024-11-26 vs NYK L 11 2 Trey Alexander 0 2 0.0% 0 2 0 0 2 2 0 0 0 1 0 1 1 1 -8 1
166 2024-11-26 vs NYK L 14 0 DeAndre Jordan 0 0 - 0 0 0 0 0 0 0 5 5 1 0 0 2 4 -5 4
167 2024-11-26 vs NYK L 2 0 P.J. Hall 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2 0
168 2024-11-26 vs NYK L 3 0 Zeke Nnaji 0 3 0.0% 0 1 0 2 0 0 0 0 0 0 0 0 0 0 -3 -3
169 2024-11-28 @ UTAH W 34 30 Nikola Jokic 13 19 68.4% 2 3 11 16 2 3 3 7 10 7 1 1 1 1 20 41
170 2024-11-28 @ UTAH W 36 22 Jamal Murray 10 18 55.6% 1 6 9 12 1 1 2 2 4 8 4 0 1 2 18 29
171 2024-11-28 @ UTAH W 31 19 Michael Porter 8 15 53.3% 2 6 6 9 1 1 4 3 7 4 1 0 1 2 17 23
172 2024-11-28 @ UTAH W 41 18 Christian Braun 6 8 75.0% 2 3 4 5 4 4 0 7 7 3 0 1 1 1 18 26
173 2024-11-28 @ UTAH W 19 10 Russell Westbrook 3 9 33.3% 1 4 2 5 3 4 0 1 1 5 2 1 3 0 6 9
174 2024-11-28 @ UTAH W 28 9 Peyton Watson 3 6 50.0% 0 3 3 3 3 4 1 2 3 2 1 1 0 1 20 12
175 2024-11-28 @ UTAH W 15 9 Julian Strawther 2 4 50.0% 2 4 0 0 3 4 0 0 0 1 0 1 1 4 2 7
176 2024-11-28 @ UTAH W 16 5 Hunter Tyson 1 3 33.3% 1 2 0 1 2 2 0 4 4 0 0 2 2 2 -5 7
177 2024-11-28 @ UTAH W 13 0 DeAndre Jordan 0 0 - 0 0 0 0 0 0 0 3 3 0 0 1 0 1 -1 4
178 2024-11-28 @ UTAH W 2 0 Trey Alexander 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
179 2024-11-28 @ UTAH W 2 0 Zeke Nnaji 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
180 2024-11-28 @ UTAH W 2 0 Spencer Jones 0 1 0.0% 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0
181 2024-11-28 @ UTAH W 2 0 P.J. Hall 0 1 0.0% 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 -1
182 2024-12-02 @ LAC L 39 28 Nikola Jokic 12 24 50.0% 2 7 10 17 2 4 3 11 14 11 1 1 5 3 -7 36
183 2024-12-02 @ LAC L 32 18 Michael Porter 8 11 72.7% 1 1 7 10 1 4 0 7 7 1 0 0 1 3 3 19
184 2024-12-02 @ LAC L 38 18 Jamal Murray 7 12 58.3% 2 4 5 8 2 2 0 0 0 7 1 0 3 1 -1 18
185 2024-12-02 @ LAC L 19 15 Julian Strawther 6 7 85.7% 2 3 4 4 1 1 1 1 2 2 0 0 1 2 -2 17
186 2024-12-02 @ LAC L 29 13 Peyton Watson 6 9 66.7% 1 2 5 7 0 0 2 3 5 2 1 1 1 2 1 18
187 2024-12-02 @ LAC L 36 11 Christian Braun 5 7 71.4% 0 0 5 7 1 3 2 5 7 2 1 0 2 2 0 15
188 2024-12-02 @ LAC L 24 10 Aaron Gordon 4 7 57.1% 1 2 3 5 1 1 0 1 1 4 1 0 1 2 -7 12
189 2024-12-02 @ LAC L 25 9 Russell Westbrook 3 11 27.3% 1 5 2 6 2 4 0 3 3 8 2 1 0 2 -7 13
190 2024-12-04 vs GSW W 40 38 Nikola Jokic 14 24 58.3% 3 4 11 20 7 9 2 8 10 6 5 1 4 1 23 44
191 2024-12-04 vs GSW W 31 22 Michael Porter 8 14 57.1% 1 3 7 11 5 6 1 6 7 2 1 0 2 2 -1 23
192 2024-12-04 vs GSW W 33 15 Aaron Gordon 4 6 66.7% 3 4 1 2 4 6 0 9 9 5 0 0 2 0 13 23
193 2024-12-04 vs GSW W 34 12 Jamal Murray 4 12 33.3% 1 3 3 9 3 3 0 3 3 7 1 3 1 3 4 17
194 2024-12-04 vs GSW W 36 11 Christian Braun 3 7 42.9% 0 2 3 5 5 7 0 6 6 2 1 0 3 3 23 11
195 2024-12-04 vs GSW W 18 7 Peyton Watson 1 1 100.0% 1 1 0 0 4 4 1 0 1 2 0 1 1 1 -17 10
196 2024-12-04 vs GSW W 23 7 Russell Westbrook 3 7 42.9% 1 3 2 4 0 0 0 1 1 5 0 0 1 3 -10 8
197 2024-12-04 vs GSW W 20 5 Julian Strawther 2 7 28.6% 1 4 1 3 0 0 0 1 1 3 1 0 1 1 -4 4
198 2024-12-04 vs GSW W 5 2 Zeke Nnaji 1 1 100.0% 0 0 1 1 0 0 0 0 0 0 0 0 0 1 -11 2
199 2024-12-06 @ CLE L 39 27 Nikola Jokic 13 26 50.0% 0 3 13 23 1 1 3 17 20 11 3 0 3 3 -8 45
200 2024-12-06 @ CLE L 38 24 Michael Porter 8 15 53.3% 3 6 5 9 5 6 2 5 7 2 4 2 4 0 1 27
201 2024-12-06 @ CLE L 42 19 Jamal Murray 7 16 43.8% 1 3 6 13 4 5 1 3 4 6 1 0 1 0 -10 19
202 2024-12-06 @ CLE L 34 18 Aaron Gordon 8 13 61.5% 0 2 8 11 2 4 2 5 7 2 0 0 2 1 1 18
203 2024-12-06 @ CLE L 16 10 Russell Westbrook 4 9 44.4% 1 3 3 6 1 2 1 2 3 3 1 1 2 1 -15 10
204 2024-12-06 @ CLE L 39 10 Christian Braun 4 10 40.0% 0 3 4 7 2 2 0 4 4 0 1 2 2 2 2 9
205 2024-12-06 @ CLE L 18 4 Peyton Watson 1 3 33.3% 1 2 0 1 1 2 0 4 4 1 2 0 1 3 -13 7
206 2024-12-06 @ CLE L 12 2 Julian Strawther 1 4 25.0% 0 2 1 2 0 0 0 0 0 0 0 0 0 2 -14 -1
207 2024-12-06 @ CLE L 3 0 Zeke Nnaji 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -4 0
208 2024-12-08 @ WAS L 39 56 Nikola Jokic 22 38 57.9% 3 5 19 33 9 13 7 9 16 8 1 0 5 5 -1 56
209 2024-12-08 @ WAS L 33 18 Julian Strawther 7 13 53.8% 2 5 5 8 2 2 1 2 3 2 3 2 1 3 4 21
210 2024-12-08 @ WAS L 38 14 Christian Braun 7 14 50.0% 0 3 7 11 0 0 2 0 2 0 1 1 2 3 -1 9
211 2024-12-08 @ WAS L 36 11 Michael Porter 5 14 35.7% 0 5 5 9 1 2 1 4 5 6 1 1 2 2 -10 12
212 2024-12-08 @ WAS L 32 7 Russell Westbrook 3 6 50.0% 0 2 3 4 1 4 1 9 10 12 4 1 2 5 -9 26
213 2024-12-08 @ WAS L 26 4 Peyton Watson 2 5 40.0% 0 1 2 4 0 0 0 2 2 2 1 1 1 3 -17 6
214 2024-12-08 @ WAS L 12 2 Hunter Tyson 0 2 0.0% 0 2 0 0 2 2 2 2 4 0 0 0 0 0 -5 4
215 2024-12-08 @ WAS L 9 1 DeAndre Jordan 0 1 0.0% 0 0 0 1 1 4 1 2 3 2 0 0 2 0 -6 0
216 2024-12-08 @ WAS L 16 0 Jalen Pickett 0 1 0.0% 0 1 0 0 0 0 1 2 3 2 0 0 0 2 0 4
217 2024-12-09 @ ATL W 35 48 Nikola Jokic 17 29 58.6% 3 6 14 23 11 13 3 11 14 8 3 0 3 2 25 56
218 2024-12-09 @ ATL W 36 26 Michael Porter 12 17 70.6% 1 5 11 12 1 1 2 5 7 3 0 0 1 2 15 30
219 2024-12-09 @ ATL W 32 17 Christian Braun 7 11 63.6% 2 2 5 9 1 2 2 6 8 4 2 1 1 3 34 26
220 2024-12-09 @ ATL W 22 13 Julian Strawther 5 6 83.3% 3 4 2 2 0 0 0 2 2 3 0 0 3 3 -2 14
221 2024-12-09 @ ATL W 31 9 Russell Westbrook 4 6 66.7% 1 3 3 3 0 1 0 1 1 11 2 1 4 3 12 17
222 2024-12-09 @ ATL W 23 6 Aaron Gordon 1 6 16.7% 0 4 1 2 4 5 0 2 2 6 0 1 3 1 17 6
223 2024-12-09 @ ATL W 17 5 Jalen Pickett 2 2 100.0% 1 1 1 1 0 0 0 2 2 5 1 0 2 4 18 11
224 2024-12-09 @ ATL W 8 5 Hunter Tyson 2 2 100.0% 1 1 1 1 0 0 0 1 1 1 0 0 0 1 7 7
225 2024-12-09 @ ATL W 10 4 DeAndre Jordan 2 2 100.0% 0 0 2 2 0 0 0 4 4 2 0 0 1 0 0 9
226 2024-12-09 @ ATL W 18 2 Peyton Watson 1 2 50.0% 0 1 1 1 0 1 0 1 1 0 1 2 0 3 9 4
227 2024-12-09 @ ATL W 3 2 P.J. Hall 1 2 50.0% 0 0 1 2 0 0 0 1 1 0 0 0 0 0 5 2
228 2024-12-09 @ ATL W 3 2 Trey Alexander 1 2 50.0% 0 0 1 2 0 0 0 0 0 0 0 0 0 0 5 1
229 2024-12-09 @ ATL W 3 2 Zeke Nnaji 1 2 50.0% 0 0 1 2 0 1 0 0 0 0 0 0 0 0 5 0
230 2024-12-14 vs LAC W 32 20 Jamal Murray 8 16 50.0% 2 5 6 11 2 2 0 5 5 3 4 1 6 2 18 19
231 2024-12-14 vs LAC W 29 17 Michael Porter 5 11 45.5% 2 7 3 4 5 6 1 4 5 4 1 0 1 3 15 19
232 2024-12-14 vs LAC W 30 16 Nikola Jokic 6 9 66.7% 2 2 4 7 2 4 0 7 7 2 2 0 5 2 14 17
233 2024-12-14 vs LAC W 26 14 Peyton Watson 5 6 83.3% 1 2 4 4 3 4 2 3 5 0 2 0 0 0 9 19
234 2024-12-14 vs LAC W 23 14 Aaron Gordon 4 7 57.1% 1 2 3 5 5 5 0 6 6 2 0 0 1 2 10 18
235 2024-12-14 vs LAC W 26 12 Julian Strawther 3 6 50.0% 0 2 3 4 6 7 0 4 4 2 0 0 1 1 7 13
236 2024-12-14 vs LAC W 24 8 Christian Braun 4 8 50.0% 0 4 4 4 0 0 1 2 3 1 2 0 0 2 8 10
237 2024-12-14 vs LAC W 5 5 Hunter Tyson 1 1 100.0% 1 1 0 0 2 2 0 1 1 0 0 0 2 1 0 4
238 2024-12-14 vs LAC W 24 5 Russell Westbrook 2 9 22.2% 0 3 2 6 1 2 0 1 1 5 3 0 4 2 21 2
239 2024-12-14 vs LAC W 14 4 DeAndre Jordan 2 2 100.0% 0 0 2 2 0 0 1 8 9 2 1 1 0 1 8 17
240 2024-12-14 vs LAC W 4 3 Jalen Pickett 1 1 100.0% 1 1 0 0 0 0 0 0 0 1 0 0 0 0 0 4
241 2024-12-14 vs LAC W 4 2 Zeke Nnaji 1 1 100.0% 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 2
242 2024-12-17 @ SAC W 38 28 Jamal Murray 11 26 42.3% 4 8 7 18 2 2 0 2 2 6 0 1 1 2 10 21
243 2024-12-17 @ SAC W 31 24 Aaron Gordon 9 14 64.3% 1 3 8 11 5 6 4 3 7 2 0 0 1 3 6 26
244 2024-12-17 @ SAC W 38 20 Nikola Jokic 8 19 42.1% 1 6 7 13 3 4 2 12 14 13 2 1 5 0 4 33
245 2024-12-17 @ SAC W 35 18 Russell Westbrook 8 13 61.5% 0 3 8 10 2 4 3 6 9 10 3 0 3 3 3 30
246 2024-12-17 @ SAC W 23 13 Julian Strawther 6 12 50.0% 1 4 5 8 0 0 0 4 4 1 0 1 0 1 -11 13
247 2024-12-17 @ SAC W 31 11 Michael Porter 4 7 57.1% 1 2 3 5 2 3 2 8 10 1 1 0 2 1 8 17
248 2024-12-17 @ SAC W 17 9 Peyton Watson 3 8 37.5% 1 1 2 7 2 3 3 1 4 1 1 0 1 3 -5 8
249 2024-12-17 @ SAC W 17 7 Hunter Tyson 2 2 100.0% 1 1 1 1 2 2 1 2 3 1 1 0 1 3 -7 11
250 2024-12-17 @ SAC W 10 0 DeAndre Jordan 0 1 0.0% 0 0 0 1 0 0 0 2 2 3 1 1 1 2 -3 5
251 2024-12-20 @ POR L 37 34 Nikola Jokic 13 18 72.2% 4 6 9 12 4 4 0 6 6 8 1 0 3 4 -5 41
252 2024-12-20 @ POR L 38 24 Jamal Murray 9 19 47.4% 3 6 6 13 3 4 0 3 3 10 3 0 1 3 1 28
253 2024-12-20 @ POR L 33 19 Russell Westbrook 8 12 66.7% 2 4 6 8 1 2 2 2 4 7 1 2 3 3 7 25
254 2024-12-20 @ POR L 32 16 Michael Porter 6 11 54.5% 3 7 3 4 1 2 1 5 6 3 1 0 1 1 7 19
255 2024-12-20 @ POR L 25 13 Christian Braun 5 10 50.0% 1 2 4 8 2 2 0 4 4 1 1 0 0 1 -12 14
256 2024-12-20 @ POR L 17 8 Peyton Watson 2 3 66.7% 0 1 2 2 4 5 1 1 2 1 0 0 1 2 -2 8
257 2024-12-20 @ POR L 10 6 Julian Strawther 2 4 50.0% 2 4 0 0 0 0 0 0 0 1 0 0 0 2 -17 5
258 2024-12-20 @ POR L 11 2 DeAndre Jordan 1 2 50.0% 0 0 1 2 0 0 2 5 7 0 0 1 0 2 3 9
259 2024-12-20 @ POR L 31 2 Aaron Gordon 1 6 16.7% 0 3 1 3 0 2 1 5 6 3 0 0 2 2 0 2
260 2024-12-20 @ POR L 6 0 Hunter Tyson 0 2 0.0% 0 1 0 1 0 0 1 1 2 1 0 0 0 0 8 1
261 2024-12-23 @ NOP W 43 27 Nikola Jokic 11 20 55.0% 2 3 9 17 3 5 2 11 13 10 1 1 3 5 6 38
262 2024-12-23 @ NOP W 41 27 Jamal Murray 9 19 47.4% 2 9 7 10 7 8 1 7 8 4 3 1 6 2 -5 26
263 2024-12-23 @ NOP W 36 21 Russell Westbrook 9 14 64.3% 1 4 8 10 2 4 3 2 5 5 3 1 5 3 6 23
264 2024-12-23 @ NOP W 35 17 Aaron Gordon 6 12 50.0% 2 4 4 8 3 6 5 3 8 3 1 0 2 2 -6 18
265 2024-12-23 @ NOP W 20 13 Julian Strawther 4 8 50.0% 1 5 3 3 4 4 0 1 1 1 0 1 0 2 20 12
266 2024-12-23 @ NOP W 39 10 Christian Braun 4 8 50.0% 0 1 4 7 2 2 3 3 6 5 2 0 1 1 2 18
267 2024-12-23 @ NOP W 23 8 Michael Porter 2 8 25.0% 2 6 0 2 2 2 0 4 4 1 0 2 4 2 -10 5
268 2024-12-23 @ NOP W 18 5 Peyton Watson 2 5 40.0% 0 1 2 4 1 1 0 5 5 5 0 2 1 1 5 13
269 2024-12-23 @ NOP W 10 4 DeAndre Jordan 2 3 66.7% 0 0 2 3 0 0 0 4 4 0 0 0 0 1 -3 7
270 2024-12-24 vs SUNS W 30 32 Nikola Jokic 12 17 70.6% 4 6 8 11 4 5 0 2 2 7 0 0 1 1 19 34
271 2024-12-24 vs SUNS W 30 24 Michael Porter 10 12 83.3% 2 4 8 8 2 2 2 4 6 4 0 0 1 1 22 31
272 2024-12-24 vs SUNS W 23 12 Aaron Gordon 4 7 57.1% 2 3 2 4 2 2 0 2 2 1 1 0 0 3 9 13
273 2024-12-24 vs SUNS W 25 11 Russell Westbrook 5 12 41.7% 1 5 4 7 0 0 3 2 5 7 2 0 3 2 10 15
274 2024-12-24 vs SUNS W 23 11 Jalen Pickett 4 11 36.4% 3 8 1 3 0 0 0 3 3 8 0 1 2 0 17 14
275 2024-12-24 vs SUNS W 18 9 Julian Strawther 3 9 33.3% 3 7 0 2 0 0 1 1 2 1 1 0 0 1 7 7
276 2024-12-24 vs SUNS W 16 6 Hunter Tyson 2 4 50.0% 1 2 1 2 1 2 0 4 4 0 1 0 0 2 3 8
277 2024-12-24 vs SUNS W 14 4 DeAndre Jordan 2 2 100.0% 0 0 2 2 0 0 1 4 5 1 1 1 1 1 8 11
278 2024-12-24 vs SUNS W 26 4 Christian Braun 2 9 22.2% 0 3 2 6 0 0 1 6 7 4 0 0 1 0 18 7
279 2024-12-24 vs SUNS W 21 4 Peyton Watson 2 5 40.0% 0 1 2 4 0 0 3 3 6 1 0 1 2 2 14 7
280 2024-12-24 vs SUNS W 3 0 P.J. Hall 0 0 - 0 0 0 0 0 0 0 2 2 0 0 1 0 0 2 3
281 2024-12-24 vs SUNS W 4 0 Trey Alexander 0 0 - 0 0 0 0 0 0 0 0 0 1 0 0 0 0 2 1
282 2024-12-24 vs SUNS W 4 0 Spencer Jones 0 1 0.0% 0 1 0 0 0 0 0 2 2 0 0 0 1 1 2 0
283 2024-12-24 vs SUNS W 4 0 Zeke Nnaji 0 1 0.0% 0 1 0 0 0 0 0 0 0 0 0 0 0 1 2 -1
284 2024-12-26 @ SUNS L 38 25 Nikola Jokic 10 19 52.6% 2 7 8 12 3 4 5 10 15 2 2 0 2 1 -3 32
285 2024-12-26 @ SUNS L 37 22 Michael Porter 7 14 50.0% 3 8 4 6 5 7 2 2 4 2 0 1 5 2 -4 15
286 2024-12-26 @ SUNS L 27 17 Russell Westbrook 6 12 50.0% 1 4 5 8 4 7 1 5 6 2 1 0 4 1 3 13
287 2024-12-26 @ SUNS L 39 13 Jamal Murray 4 10 40.0% 1 2 3 8 4 4 0 6 6 6 0 0 4 1 -16 15
288 2024-12-26 @ SUNS L 19 7 Aaron Gordon 3 7 42.9% 0 1 3 6 1 2 1 2 3 2 0 0 0 2 -1 7
289 2024-12-26 @ SUNS L 28 5 Christian Braun 2 7 28.6% 0 2 2 5 1 2 3 2 5 3 0 0 1 3 -10 6
290 2024-12-26 @ SUNS L 18 5 Julian Strawther 2 4 50.0% 1 2 1 2 0 0 1 1 2 1 0 0 0 3 -8 6
291 2024-12-26 @ SUNS L 10 4 DeAndre Jordan 2 2 100.0% 0 0 2 2 0 0 0 2 2 0 0 0 0 1 -7 6
292 2024-12-26 @ SUNS L 24 2 Peyton Watson 0 3 0.0% 0 3 0 0 2 2 1 2 3 2 0 1 0 2 -4 5
293 2024-12-28 vs CLE L 36 27 Nikola Jokic 12 19 63.2% 0 3 12 16 3 4 3 11 14 13 3 0 1 1 -15 48
294 2024-12-28 vs CLE L 40 27 Jamal Murray 10 20 50.0% 3 6 7 14 4 4 0 3 3 11 2 0 4 3 -9 29
295 2024-12-28 vs CLE L 26 18 Peyton Watson 6 8 75.0% 2 2 4 6 4 5 0 1 1 2 1 1 0 0 -16 20
296 2024-12-28 vs CLE L 32 18 Michael Porter 6 11 54.5% 5 8 1 3 1 2 1 3 4 3 0 0 1 5 -5 18
297 2024-12-28 vs CLE L 32 16 Christian Braun 7 9 77.8% 2 4 5 5 0 0 1 1 2 1 1 0 1 4 -21 17
298 2024-12-28 vs CLE L 30 11 Russell Westbrook 5 13 38.5% 1 5 4 8 0 0 0 4 4 7 1 0 4 3 -13 11
299 2024-12-28 vs CLE L 23 11 Julian Strawther 4 7 57.1% 1 2 3 5 2 2 0 2 2 0 0 0 2 0 6 8
300 2024-12-28 vs CLE L 11 4 DeAndre Jordan 2 4 50.0% 0 0 2 4 0 1 3 4 7 1 0 2 0 3 -1 11
301 2024-12-28 vs CLE L 6 3 Hunter Tyson 1 3 33.3% 1 1 0 2 0 0 0 1 1 0 0 0 0 1 -2 2
302 2024-12-28 vs CLE L 2 0 Jalen Pickett 0 0 - 0 0 0 0 0 0 0 0 0 1 0 0 0 0 2 1
303 2024-12-28 vs CLE L 2 0 Zeke Nnaji 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
304 2024-12-28 vs CLE L 2 0 Spencer Jones 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 0
305 2024-12-29 vs DET W 37 37 Nikola Jokic 11 17 64.7% 4 5 7 12 11 14 1 8 9 8 0 0 2 4 25 43
306 2024-12-29 vs DET W 40 34 Jamal Murray 12 21 57.1% 4 7 8 14 6 7 1 4 5 4 1 3 1 1 24 36
307 2024-12-29 vs DET W 34 26 Michael Porter 9 14 64.3% 5 7 4 7 3 4 1 2 3 0 0 0 1 1 5 22
308 2024-12-29 vs DET W 30 10 Christian Braun 2 4 50.0% 0 1 2 3 6 6 2 2 4 3 3 1 0 3 13 19
309 2024-12-29 vs DET W 31 8 Russell Westbrook 4 6 66.7% 0 1 4 5 0 0 2 7 9 8 2 0 6 4 13 19
310 2024-12-29 vs DET W 11 6 DeAndre Jordan 2 2 100.0% 0 0 2 2 2 4 0 3 3 0 0 1 1 0 -12 7
311 2024-12-29 vs DET W 23 6 Julian Strawther 3 9 33.3% 0 4 3 5 0 0 0 3 3 1 1 0 1 3 -5 4
312 2024-12-29 vs DET W 23 5 Peyton Watson 2 6 33.3% 0 1 2 5 1 1 0 1 1 3 2 1 0 2 -6 8
313 2024-12-29 vs DET W 13 2 Hunter Tyson 1 3 33.3% 0 1 1 2 0 0 1 2 3 2 0 0 1 0 8 4
314 2024-12-31 @ UTAH W 38 36 Nikola Jokic 14 33 42.4% 3 9 11 24 5 6 7 15 22 11 4 0 2 0 20 51
315 2024-12-31 @ UTAH W 35 21 Michael Porter 8 18 44.4% 3 6 5 12 2 3 5 1 6 2 0 0 0 4 13 18
316 2024-12-31 @ UTAH W 37 20 Jamal Murray 7 17 41.2% 2 6 5 11 4 4 1 3 4 10 2 1 3 2 -9 24
317 2024-12-31 @ UTAH W 36 20 Christian Braun 9 12 75.0% 0 1 9 11 2 2 0 2 2 2 2 1 0 3 20 24
318 2024-12-31 @ UTAH W 33 16 Russell Westbrook 7 7 100.0% 0 0 7 7 2 2 3 7 10 10 4 0 0 3 23 40
319 2024-12-31 @ UTAH W 26 13 Peyton Watson 6 9 66.7% 1 3 5 6 0 0 0 4 4 1 0 1 1 1 -2 15
320 2024-12-31 @ UTAH W 18 4 Julian Strawther 1 5 20.0% 0 3 1 2 2 2 1 1 2 1 1 0 1 2 5 3
321 2024-12-31 @ UTAH W 10 2 DeAndre Jordan 1 2 50.0% 0 0 1 2 0 0 0 1 1 1 0 0 0 1 -9 3
322 2024-12-31 @ UTAH W 7 0 Hunter Tyson 0 2 0.0% 0 2 0 0 0 0 0 0 0 0 0 0 0 1 -6 -2
323 2025-01-02 vs ATL W 30 23 Nikola Jokic 8 16 50.0% 1 1 7 15 6 6 3 14 17 15 0 1 2 2 31 46
324 2025-01-02 vs ATL W 24 21 Michael Porter 8 14 57.1% 5 9 3 5 0 0 0 4 4 2 1 0 1 1 24 21
325 2025-01-02 vs ATL W 36 21 Jamal Murray 6 14 42.9% 2 5 4 9 7 7 1 2 3 2 2 1 2 1 11 19
326 2025-01-02 vs ATL W 26 16 Russell Westbrook 5 6 83.3% 1 2 4 4 5 5 0 2 2 11 0 0 2 3 24 26
327 2025-01-02 vs ATL W 32 15 Christian Braun 7 9 77.8% 0 1 7 8 1 1 0 3 3 4 0 0 0 3 23 20
328 2025-01-02 vs ATL W 30 13 Julian Strawther 6 12 50.0% 1 5 5 7 0 0 0 6 6 2 2 1 1 2 4 17
329 2025-01-02 vs ATL W 24 11 Peyton Watson 4 10 40.0% 1 4 3 6 2 2 0 0 0 1 2 1 2 2 3 7
330 2025-01-02 vs ATL W 15 8 DeAndre Jordan 4 4 100.0% 0 0 4 4 0 0 0 7 7 3 1 1 1 1 -6 19
331 2025-01-02 vs ATL W 13 7 Jalen Pickett 3 5 60.0% 1 2 2 3 0 0 0 1 1 4 0 0 1 1 -4 9
332 2025-01-02 vs ATL W 3 2 Zeke Nnaji 1 2 50.0% 0 0 1 2 0 0 0 0 0 0 0 0 0 0 -6 1
333 2025-01-02 vs ATL W 3 2 Spencer Jones 1 2 50.0% 0 1 1 1 0 0 0 0 0 0 0 0 0 0 -6 1
334 2025-01-02 vs ATL W 4 0 Hunter Tyson 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -3 0
335 2025-01-04 vs SAS L 37 41 Nikola Jokic 15 36 41.7% 3 10 12 26 8 9 4 14 18 9 2 0 2 3 7 46
336 2025-01-04 vs SAS L 42 22 Michael Porter 9 14 64.3% 4 8 5 6 0 0 1 3 4 1 0 2 1 0 7 23
337 2025-01-04 vs SAS L 37 14 Jamal Murray 6 17 35.3% 2 5 4 12 0 0 1 3 4 7 0 0 2 1 -7 12
338 2025-01-04 vs SAS L 43 11 Christian Braun 3 10 30.0% 2 6 1 4 3 4 1 7 8 5 0 2 0 2 0 18
339 2025-01-04 vs SAS L 23 11 Julian Strawther 4 7 57.1% 3 6 1 1 0 0 0 1 1 1 1 0 0 2 1 11
340 2025-01-04 vs SAS L 31 9 Russell Westbrook 4 7 57.1% 1 2 3 5 0 2 1 5 6 8 2 0 3 5 6 17
341 2025-01-04 vs SAS L 19 2 Peyton Watson 1 4 25.0% 0 1 1 3 0 1 1 1 2 2 2 2 0 0 -10 6
342 2025-01-04 vs SAS L 4 0 DeAndre Jordan 0 1 0.0% 0 0 0 1 0 0 1 1 2 0 0 0 0 0 -8 1
343 2025-01-04 vs SAS L 5 0 Hunter Tyson 0 1 0.0% 0 1 0 0 0 0 0 1 1 0 0 1 0 0 -11 1
344 2025-01-05 @ SAS W 43 46 Nikola Jokic 19 35 54.3% 3 8 16 27 5 6 4 5 9 10 2 2 2 3 7 50
345 2025-01-05 @ SAS W 46 28 Michael Porter 9 17 52.9% 4 9 5 8 6 7 2 8 10 2 0 0 1 1 21 30
346 2025-01-05 @ SAS W 38 13 Jamal Murray 6 17 35.3% 1 3 5 14 0 0 0 6 6 6 5 1 1 3 4 19
347 2025-01-05 @ SAS W 36 9 Russell Westbrook 4 11 36.4% 1 4 3 7 0 0 4 6 10 6 3 1 1 3 5 21
348 2025-01-05 @ SAS W 34 8 Peyton Watson 2 6 33.3% 0 3 2 3 4 6 1 7 8 3 0 2 1 0 21 14
349 2025-01-05 @ SAS W 27 8 Christian Braun 4 8 50.0% 0 1 4 7 0 0 0 2 2 3 1 1 0 2 -15 11
350 2025-01-05 @ SAS W 26 5 Julian Strawther 1 9 11.1% 1 5 0 4 2 2 0 5 5 2 0 0 0 2 7 4
351 2025-01-05 @ SAS W 10 3 DeAndre Jordan 1 4 25.0% 0 0 1 4 1 2 3 3 6 0 0 0 1 2 4 4
352 2025-01-05 @ SAS W 4 2 Jalen Pickett 1 1 100.0% 0 0 1 1 0 0 0 2 2 0 0 0 0 0 4 4
353 2025-01-05 @ SAS W 1 0 Hunter Tyson 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 1 -3 0
354 2025-01-08 vs BOS L 33 26 Russell Westbrook 9 18 50.0% 4 9 5 9 4 5 3 6 9 6 1 1 8 2 -10 25
355 2025-01-08 vs BOS L 39 19 Jamal Murray 8 17 47.1% 1 5 7 12 2 2 2 2 4 4 2 0 1 3 -3 19
356 2025-01-08 vs BOS L 27 19 Julian Strawther 8 15 53.3% 3 6 5 9 0 0 1 1 2 2 1 0 1 2 -3 16
357 2025-01-08 vs BOS L 36 15 Michael Porter 5 13 38.5% 2 7 3 6 3 4 1 9 10 3 0 0 1 1 -16 18
358 2025-01-08 vs BOS L 34 14 Peyton Watson 5 9 55.6% 2 3 3 6 2 2 2 2 4 0 1 4 1 3 -3 18
359 2025-01-08 vs BOS L 29 12 Christian Braun 5 10 50.0% 2 5 3 5 0 0 2 2 4 2 1 0 2 3 -11 12
360 2025-01-08 vs BOS L 20 1 DeAndre Jordan 0 1 0.0% 0 0 0 1 1 2 2 3 5 1 0 0 1 2 1 4
361 2025-01-08 vs BOS L 17 0 Dario Saric 0 2 0.0% 0 1 0 1 0 0 0 1 1 4 0 1 1 1 -7 3
362 2025-01-08 vs BOS L 1 0 Hunter Tyson 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
363 2025-01-08 vs BOS L 1 0 Trey Alexander 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
364 2025-01-08 vs BOS L 1 0 Jalen Pickett 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
365 2025-01-08 vs BOS L 5 0 Zeke Nnaji 0 2 0.0% 0 0 0 2 0 0 0 0 0 0 0 0 0 0 -8 -2
366 2025-01-09 vs LAC W 34 21 Jamal Murray 7 13 53.8% 4 6 3 7 3 3 0 3 3 9 1 1 2 1 24 27
367 2025-01-09 vs LAC W 27 19 Michael Porter 8 12 66.7% 3 5 5 7 0 0 0 8 8 2 1 0 2 1 15 24
368 2025-01-09 vs LAC W 29 19 Russell Westbrook 8 16 50.0% 1 5 7 11 2 5 2 4 6 8 0 0 3 3 18 19
369 2025-01-09 vs LAC W 32 16 Julian Strawther 5 10 50.0% 4 8 1 2 2 2 0 4 4 2 0 0 1 3 18 16
370 2025-01-09 vs LAC W 28 15 Christian Braun 6 8 75.0% 2 2 4 6 1 1 0 2 2 1 1 0 0 4 11 17
371 2025-01-09 vs LAC W 23 12 DeAndre Jordan 5 6 83.3% 0 0 5 6 2 3 2 7 9 2 2 0 0 2 17 23
372 2025-01-09 vs LAC W 24 9 Peyton Watson 4 10 40.0% 0 2 4 8 1 3 0 4 4 1 1 2 1 3 17 8
373 2025-01-09 vs LAC W 20 7 Dario Saric 3 8 37.5% 1 4 2 4 0 0 3 4 7 2 1 0 2 2 11 10
374 2025-01-09 vs LAC W 4 6 Jalen Pickett 2 2 100.0% 2 2 0 0 0 0 0 0 0 0 0 0 0 0 -5 6
375 2025-01-09 vs LAC W 4 2 Zeke Nnaji 1 1 100.0% 0 0 1 1 0 0 0 0 0 0 0 0 0 2 -5 2
376 2025-01-09 vs LAC W 4 0 Trey Alexander 0 2 0.0% 0 1 0 1 0 0 0 1 1 2 0 0 0 0 -5 1
377 2025-01-09 vs LAC W 9 0 Hunter Tyson 0 1 0.0% 0 0 0 1 0 0 0 1 1 0 0 0 0 3 -1 0
In [32]:
nugget_regular_season_df.groupby(['PLAYER'])['Pts'].mean()
Out[32]:
PLAYER
Aaron Gordon         13.705882
Christian Braun      13.857143
Dario Saric           3.416667
DeAndre Jordan        3.333333
Hunter Tyson          2.269231
Jalen Pickett         3.090909
Jamal Murray         19.433333
Julian Strawther      9.472222
Michael Porter       19.027778
Nikola Jokic         31.516129
P.J. Hall             0.666667
Peyton Watson         8.805556
Russell Westbrook    12.611111
Spencer Jones         0.400000
Trey Alexander        0.750000
Vlatko Cancar         2.250000
Zeke Nnaji            1.190476
Name: Pts, dtype: float64
In [33]:
#nugget_regular_season_df = nugget_regular_season_df[nugget_regular_season_df.PLAYER == player ].tail().reset_index(drop=True)
nugget_regular_season_df["vs_opp_win_loss"] =  nugget_regular_season_df['W/L']+' '+nugget_regular_season_df["Hm/Aw"]+' '+ nugget_regular_season_df["Opp"] 
nugget_regular_season_df["GM_DAY"] =  nugget_regular_season_df["Date"]+' '+nugget_regular_season_df["vs_opp_win_loss"]  

Players Overall Summary Performance¶

In [8]:
def perplayer_performance():
    
    
    players_df = nugget_regular_season_df.groupby(["PLAYER"])[['MIN','Pts','REB','AST', 'BLK',
                                                    'TOV', 'FGA', 'FGM',
                                                    '3PA', '3PM','2PM','2PA',"OREB","DREB", 
                                                    'FTA', 'FTM', 'PF','+/-','EFF']].sum().astype(int).sort_values(by='Pts',ascending=False)
    
    style.use('ggplot')
    plt.figure(figsize=(30, 18))
    plt.ylabel("Players", fontsize=15, color='black', fontweight='bold')
    plt.tick_params(axis='both', which='major', labelcolor="black", labelsize=18, labelbottom=True, 
                    bottom=False, top=False, labeltop=True)

    sns.heatmap(players_df, annot=True, fmt="d", cmap='viridis_r', annot_kws={"size":22}).set_title(f"Players Performance Data Scorecard Overview ", fontdict={'size': 30}, pad=30, color='#000')

perplayer_performance()

This chart above is a Players Performance Scoreboard Overview for denver nuggets players in this season. It includes various statistics for players like Nikola Jokic, Michael Porter Jr., Jamal Murray, and others. The columns represent total different performance metrics such as minutes played (MIN), total (PTS), rebounds (REB), assists (AST), turnovers (TOV), and shooting statistics like field goals attempted (FGA) and made (FGM), three-pointers attempted (3PA) and made (3PM), steals (STL), blocks (BLK), turnovers (TOV), and efficiency rating (EFF).

The table uses a color gradient to indicate performance levels, with deeper color representing high performance and light color indicating lower performance. This visual representation helps quickly identify how each player is performing in different areas of the game.

Below are some ot the top contributors based on the efficiency (EFF) scores from the scoreboard:

  1. Nikola Jokic: With an EFF score of 1314, Jokic is a standout performer. Known for his exceptional passing, scoring, and rebounding abilities, he is a key player for the Denver Nuggets and a two-time NBA MVP.

  2. Michael Porter Jr.: Porter Jr. has an EFF score of 742. He is a versatile forward known for his scoring prowess and three-point shooting. His ability to stretch the floor makes him a valuable asset to the team.

  3. Jamal Murray: Murray's EFF score is 610. He is a dynamic guard known for his scoring ability and clutch performances. His partnership with Jokic forms a formidable duo for the Nuggets.

  4. Christian Braun: With an EFF score of 581, Braun is a promising young player. He contributes significantly in various aspects of the game, including scoring, rebounding, and defense.

  5. Russell Westbrook: Westbrook has an EFF score of 600. Known for his explosive athleticism and triple-double capabilities, he brings energy and intensity to the court.

These players have consistently delivered high performances, contributing significantly to the team's success.

In [ ]:
 
In [9]:
nugget_regular_season_df['Pts'].sum()
Out[9]:
4338
In [10]:
def perplayer_performance():
    
    
    players_df = nugget_regular_season_df.groupby(["PLAYER"])[['MIN','Pts','REB','AST', 'BLK',
                                                    'TOV', 'FGA', 'FGM',
                                                    '3PA', '3PM','2PM','2PA',"OREB","DREB", 
                                                    'FTA', 'FTM', 'PF','+/-','EFF']].mean().astype(int).sort_values(by='Pts',ascending=False)
    
    style.use('ggplot')
    plt.figure(figsize=(30, 18))
    plt.ylabel("Players", fontsize=15, color='black', fontweight='bold')
    plt.tick_params(axis='both', which='major', labelcolor="black", labelsize=18, labelbottom=True, 
                    bottom=False, top=False, labeltop=True)

    sns.heatmap(players_df, annot=True, fmt="d", cmap='viridis_r', annot_kws={"size":22}).set_title(f" Players Average Performaces Overview", fontdict={'size': 30}, pad=30, color='#000')

perplayer_performance()

This chart Players Average Performances Overview is show the averarge performances of the players in each metric of the season.

In [ ]:
 
In [ ]:
 

Performance Trend¶

In [11]:
def performance_trend(players_game, player,cmaps):
    players_df = players_game[players_game['PLAYER'].isin([player])]
    
    players_df = players_df.groupby(["Date", "W/L", "Hm/Aw","Opp"])[['MIN','Pts','REB','AST', 'BLK',
                                                    'TOV', 'FGA', 'FGM',
                                                    '3PA', '3PM','2PM','2PA',"OREB","DREB", 
                                                    'FTA', 'FTM', 'PF','+/-','EFF']].sum()#.astype(int)
    
    style.use('ggplot')
    plt.figure(figsize=(18, 15))
    plt.ylabel("Players", fontsize=15, color='black', fontweight='bold')
    plt.tick_params(axis='both', which='major', labelcolor="black", labelsize=13, labelbottom=True, 
                    bottom=False, top=False, labeltop=True)

    sns.heatmap(players_df, annot=True, fmt="d", cmap=cmaps, annot_kws={"size":15}).set_title(f"Performance Data Scorecard for {player}", fontdict={'size': 16}, pad=15, color='#000')

Game Summary¶

This snippets below is a function that takes some parameters to display the statitical summary of the players.

In [12]:
def statistical_summary(stat, player, player_name, cmap):
    players_df = (nugget_regular_season_df[nugget_regular_season_df[stat].isin([player])]).describe()
    players_df.drop(columns=['MIN' ], inplace=True)
    
    # Removed the count row and changing the floating numbers to type int.
    stat_heatmap = (players_df.loc[[ 'mean', 'std', 'min', '25%', '50%', '75%', 'max']]).astype(int)
    
    style.use('ggplot')
    plt.figure(figsize=(15, 5))
    plt.tick_params(axis='both', which='major',labelcolor='black', labelsize=11,labelbottom=True, bottom=False, top=False, labeltop=True)
    
    
    sns.heatmap(stat_heatmap, annot=True,fmt="d",  cmap=cmap, annot_kws={"size": 14}).set_title(f"Statistical Summary For {player_name}", fontdict={'size': 16},pad=15, color='#000' );
    
    
    
In [ ]:
 

Season Average¶

The function below accepts several parameters to display the average statistics for each player in the current season.

In [13]:
def season_average(player, image_path, annotation_text, color, mycmap):   
    nugget_group_df = nugget_regular_season_df.groupby(["PLAYER"])[['Pts', 'FGA', 'FGM', '3PM', '3PA', 'FTM', 'FTA', 'OREB', 'DREB', 'REB', 'AST', 'STL', 'BLK', 'TOV', 'PF']].mean().reset_index()
    player_mean_stats = nugget_group_df[nugget_group_df['PLAYER'] == player]
    
    # Collect the relevant statistics
    player_mean_stats = player_mean_stats[['TOV', 'STL', 'BLK', 'FTM', '3PM', 'FGM', 'AST', 'REB', 'Pts']]
    
    # Convert the stats to numeric values (in case of any non-numeric values)
    mean_stats = player_mean_stats.apply(pd.to_numeric, errors='coerce').squeeze()
    
    my_cmap = mycmap#plt.get_cmap("Accent")
    style.use('dark_background')
    plt.rcParams.update({
        'figure.facecolor': 'black',
        'font.size': 10,
    })
    
    fig, ax = plt.subplots(figsize=(20, 10))
    
    # Add the player's picture
    pic = plt.imread(image_path)
    imagebox = offsetbox.OffsetImage(pic, zoom=0.1)
    ab = offsetbox.AnnotationBbox(imagebox, (0.7, 0.54), xycoords='axes fraction', frameon=False)
    ax.add_artist(ab)
    
    # Add annotation text with transparent background and adjusted box dimensions
    plt.text(
        0.42, 0.33, annotation_text, fontsize=16, color=color, wrap=True, 
        ha='left', va='center', transform=ax.transAxes,
        bbox=dict(facecolor="none", edgecolor="orange", boxstyle="round,pad=1.3")
    )

    # Apply normalization to the numeric values
    norm = plt.Normalize(mean_stats.min(), mean_stats.max())
    colors = my_cmap(norm(mean_stats))
    
    # Create the horizontal bar chart without borderlines
    bars = ax.barh(mean_stats.index, mean_stats.values, color=colors, edgecolor='none')
    
    # Add value labels above each bar
    for bar in bars:
        width = bar.get_width()
        plt.text(width, bar.get_y() + bar.get_height() / 2, f"{width:.1f}", ha='left', va='center', color="white", fontweight='bold', fontsize=20)
    
    # Remove the spines
    ax.spines['top'].set_visible(False)
    ax.spines['right'].set_visible(False)
    ax.spines['left'].set_visible(False)
    ax.spines['bottom'].set_visible(False)
    
    plt.yticks(fontweight='bold', fontsize=20, color="yellowgreen")
    plt.xticks(fontweight='bold', fontsize=20, color="yellowgreen")
    plt.title(f"{player} - Current Season's Average", fontsize=30, fontweight='bold', pad=20)
    
    plt.grid(False)
    plt.show()
In [ ]:
 
In [ ]:
 
In [ ]:
 
In [ ]:
 

Overall Stats¶

This function, players_total_stats, calculates the total statistics for a specified player from the Denver Nuggets' regular season data.

In [14]:
def players_total_stats(stat, player):
    players_stats = nugget_regular_season_df[nugget_regular_season_df[stat].isin([player])]
    total_stat = players_stats[['Pts','FGM','FGA','3PM','3PA','2PM', '2PA', 'FTM', 'FTA','OREB','DREB', 'AST', 'STL', 'BLK', 'TOV', 'EFF']].sum().astype(int)
    total_stats = total_stat.reset_index()
    total_stats.columns = ['statistics', 'values']
    return total_stats
In [ ]:
 

This function, overall_stats, generates a comprehensive visual summary of a player's performance statistics for the regular season.

In [15]:
def overall_stats(player, limit ):   
    # Define the fg_percent function to return data
    def fg_percent(fg_made, fg_attempted):
        made_percentage = (fg_made / fg_attempted) * 100
        missed_percentage = 100 - made_percentage
        labels = ['made', 'missed']
        sizes = [made_percentage, missed_percentage]
        colors = ['#15B01A', 'red']
        return {'sizes': sizes, 'labels': labels, 'colors': colors}

    # Creating a figure
    fig = plt.figure(figsize=(20, 10),facecolor='cyan')
    style.use('dark_background')
    # Set the spacing between subplots
    plt.subplots_adjust(hspace=25)

    # Defining the grid layout
    gs = gridspec.GridSpec(2, 4, width_ratios=[1, 1, 1,1])

    # Creating subplots
    ax1 = fig.add_subplot(gs[0, :])
    ax2 = fig.add_subplot(gs[1, 0])
    ax3 = fig.add_subplot(gs[1, 1])
    ax4 = fig.add_subplot(gs[1, 2])
    ax5 = fig.add_subplot(gs[1, 3])
 



    #######################################################################################
    ######################################################################################
    my_cmap = plt.get_cmap("coolwarm")
    #my_cmap = plt.get_cmap("twilight_shifted_r")
    style.use('dark_background')

    norm = plt.Normalize(total_stats['values'].min(),total_stats['values'].max())
    colors = my_cmap(norm(total_stats['values']))


    ax1.bar(total_stats['statistics'], total_stats['values'], color=colors, edgecolor='black')
    # Adding value labels on top of each bar
    for i, value in enumerate(total_stats['values']):
        ax1.text(i, value, str(value), ha='center', va='bottom', fontsize=20, color='orange')

    # Customize the plot
    ax1.set_xlabel('Statistics',fontsize=30, fontweight='bold', color='black')
    ax1.set_ylabel('Totals',fontsize=30, fontweight='bold', color='black')
    ax1.set_title(f"Regular Season Overall Sum of Box Scores For {player}.",fontsize=30,fontweight='bold', color='black')
    ax1.tick_params(axis='x', colors='black',labelsize=20);

    ax1.set_ylim(0, limit)
    ax1.grid(False)
    ###################################################

    #######################################################################################
    ##########################################################################################
    cmap = plt.get_cmap("Reds")  
    colors = cmap([0.1, 0.5, 0.9]) 
    # Plot the pie chart for ax1
    data1 = fg_percent(total_stats.iloc[1, 1], total_stats.iloc[2, 1])
    ax2.pie(data1['sizes'], labels=data1['labels'],
            colors=colors,
            wedgeprops=dict(width=0.3),
            autopct='%1.1f%%', 
            textprops={'size': 'xx-large', 'color': 'black'},startangle=126)
    ax2.set_title(' Total Field Goals%',fontweight='bold',fontsize=20,color='black')
    ax2.axis('equal')
    #######################################################################################
    # Plot the pie chart for ax2
    data2 = fg_percent(total_stats.iloc[3, 1], total_stats.iloc[4, 1])
    ax3.pie(data2['sizes'], labels=data2['labels'],
            colors=data2['colors'],
            wedgeprops=dict(width=0.3),
            autopct='%1.1f%%', 
            textprops={'size': 'xx-large', 'color': 'black'},startangle=270)
    ax3.set_title(' Total 3 points%',fontweight='bold',fontsize=20,color='black')
    ax3.axis('equal')

    #######################################################################################
    # Plot the pie chart for ax3
    data3 = fg_percent(total_stats.iloc[5, 1], total_stats.iloc[6, 1])
    ax4.pie(data3['sizes'], labels=data3['labels'],
            colors=data3['colors'],
            wedgeprops=dict(width=0.3),
            autopct='%1.1f%%', 
            textprops={'size': 'xx-large', 'color': 'black'},startangle=15)
    ax4.set_title('Total 2 Points%',fontweight='bold',fontsize=20,color='black')
    ax4.axis('equal')


    #######################################################################################
    
    # Plot the pie chart for ax3
    data4 = fg_percent(total_stats.iloc[7, 1], total_stats.iloc[8, 1])
    ax5.pie(data4['sizes'], labels=data4['labels'],
            colors=data4['colors'],
            wedgeprops=dict(width=0.3),
            autopct='%1.1f%%', 
            textprops={'size': 'xx-large', 'color': 'black'},startangle=15)
    ax5.set_title('Total Free-Throws%',fontweight='bold',fontsize=20,color='black')
    ax5.axis('equal')


    #######################################################################################
  



    fig.tight_layout(pad=3)

    # Show the plot
    plt.show()
  
In [ ]:
 
In [ ]:
 

Tripple And Double Double Performances¶

The function tripple_double_double identifies and generates a list of players who achieved triple-double performances in any game played.

In [21]:
def tripple_double_double(player):
    # Initialize the counter and list to store triple-double performances
    triple_double_count = 0
    double_double_count = 0
    triple_double_list = []
    
    triple_double_counts = nugget_regular_season_df[nugget_regular_season_df['PLAYER'].isin([player])]
    
    # Check for triple-double performances and count them
    for index, row in triple_double_counts.iterrows():
        pts, reb, ast, opp, date = row['Pts'], row['REB'], row['AST'], row['Opp'], row['GM_DAY']
        if pts >= 10 and reb >= 10 and ast >= 10:
            #print(f"Triple-double performance: {pts, reb, ast} against {opp} on {date}")
            triple_double_count += 1
            triple_double_list.append((date, opp, pts, reb, ast))
        elif (pts >= 10 and reb >= 10 and ast < 10) or (pts >= 10 and reb < 10 and ast >= 10) or (pts < 10 and reb >= 10 and ast >= 10):
            #print(f"Double-double performance: {pts, reb, ast} against {opp} on {date}")
            double_double_count += 1
    
    # Create a DataFrame to store the triple-double performances
    triple_double_df = pd.DataFrame(triple_double_list, columns=['Date', 'Opp', 'Pts', 'Rebs', 'Ast'])
    
    # Print the total count of triple-double and double-double performances
    print(f"Total triple-double performances for {player}: {triple_double_count}")
    print(f"Total double-double performances for {player}: {double_double_count}")
    
    return triple_double_df



#tripple_double_double("Nikola Jokic")
In [ ]:
 

Triple Double Overview¶

This function, triple_double_overview, generates a heatmap to visualize the triple-double performances of Nikola Jokic during the 2024/2025 season, summarizing points, rebounds, and assists for each game date.

In [36]:
def triple_double_overview(player):
    triple_double_count = triple_double_df.groupby(["Date",])[['Pts','Rebs','Ast']].sum().astype(int)
    style.use('dark_background')

    
    plt.figure(figsize=(3, 5))
    plt.tick_params(axis='both', which='major', labelsize=11,labelcolor='white',labelbottom=True, bottom=False, top=False, labeltop=True)


    sns.heatmap(triple_double_count, annot=True,fmt="d",  cmap='viridis_r',annot_kws={"size": 14}, color='#000' , cbar=False).set_title(f" {player} 2024/2025 Triple Double Overview.", fontdict={'size': 16},pad=15, color='white' );
In [ ]:
 

Home and Away Games Performance Insights:¶

This shows each player's performance both in home and away games

In [ ]:
 
In [46]:
def home_away_performances(player):

    #Displaying the plots in a subplots
    def subplots():
            # Create a figure
            fig = plt.figure(figsize=(20,10));
            fig.set_facecolor("orange")


            plt.rcParams.update({'font.size': 10, })

            # Defining the grid layout with different width ratios for each row

            gs = gridspec.GridSpec(2, 2)


            # Create subplots
            ax1 = fig.add_subplot(gs[0, :]);
            ax2 = fig.add_subplot(gs[1, :]);
            
            style.use('ggplot')

            %matplotlib inline
            #sns.set_palette("dark")
            #style.use('ggplot')

            #sns.set_style('darkgrid')


    ######################################################################################################
    ####################### FREQUENCY DISTRIBUTION OF PERFORMANCES IN HOME GAMES #########################
    ######################################################################################################
            player_home_performance = nugget_regular_season_df[nugget_regular_season_df['PLAYER'].isin([player])]
            home_games = player_home_performance[player_home_performance['Hm/Aw'] == 'vs' ]
            home_game = home_games.describe()

            home_game = (home_game.loc[[ 'max', 'min']]).astype(int)




            # Accessing the indexes and values of the away game data
            stats = home_game.loc['max'].index
            home_max_values = home_game.loc['max'].values
            home_min_values = home_game.loc['min'].values
            y = np.arange(len(stats))  # The label locations
            width = 0.4  # The width of the bars

            # Plot the bars for each attribute
            bar3 = ax1.bar(y - width, home_max_values, width, label='Home max values', color='green')
            bar4 = ax1.bar(y, home_min_values, width, label='Home min values')

            # Add value labels on top of each bar3
            for p in bar3:
                height = p.get_height()

                ax1.annotate(f"{height:.0f}", (p.get_x() + p.get_width() / 2., height+3),
                            ha='center', va='center', fontsize=15, color='black', fontweight='bold')

            # Add value labels on top of each bar4
            for p in bar4:
                height = p.get_height()

                ax1.annotate(f"{height:.0f}", (p.get_x() + p.get_width() / 2., height+3),
                            ha='center', va='center', fontsize=15, color='black', fontweight='bold')

            # Add labels, title, and custom x-axis tick labels
            #ax2.set_ylabel('Counts',fontsize=15,fontweight='bold')
            ax1.set_title('Performance Comparison: Home Games', fontsize=20, fontweight='bold',color='black')
            ax1.set_xticks(y-width/2)
            ax1.tick_params(axis='x', labelsize=15, labelcolor='black')  # Adjust the font size as needed
            ax1.tick_params(axis='y', labelsize=15, labelcolor='black')
            ax1.set_xticklabels(stats)
            ax1.legend(loc='upper center', ncols=3,fontsize=15,labelcolor='black')
            ax1.set_ylim(0, 70)

    ######################################################################################################
    ####################### FREQUENCY DISTRIBUTION OF PERFORMANCES IN AWAY GAMES #########################
    ######################################################################################################
            player_home_performance = nugget_regular_season_df[nugget_regular_season_df['PLAYER'].isin([player])]                                                                                           
            away_games = player_home_performance[player_home_performance['Hm/Aw'] == '@' ]
            away_game = away_games.describe()

            away_game = (away_game.loc[[ 'max', 'min']]).astype(int)



            # Accessing the indexes and values of the away game data
            stats =away_game.loc['max'].index
            away_max_values = away_game.loc['max'].values
            away_min_values = away_game.loc['min'].values
            y = np.arange(len(stats))  # The label locations
            width = 0.4  # The width of the bars

            # Plot the bars for each attribute
            bar3 = ax2.bar(y - width, away_max_values, width, label='Away max values', color='green')
            bar4 = ax2.bar(y, away_min_values, width, label='Away min values')

            # Add value labels on top of each bar3
            for p in bar3:
                height = p.get_height()

                ax2.annotate(f"{height:.0f}", (p.get_x() + p.get_width() / 2., height+3),
                            ha='center', va='center', fontsize=15, color='black', fontweight='bold')

            # Add value labels on top of each bar4
            for p in bar4:
                height = p.get_height()

                ax2.annotate(f"{height:.0f}", (p.get_x() + p.get_width() / 2., height+3),
                            ha='center', va='center', fontsize=15, color='black', fontweight='bold')

            # Add labels, title, and custom x-axis tick labels
            #ax2.set_ylabel('Counts',fontsize=15,fontweight='bold')
            ax2.set_title('Performance Comparison: Away Games', fontsize=20, fontweight='bold', color='black')
            ax2.set_xticks(y-width/2)
            ax2.tick_params(axis='x', labelsize=15, labelcolor='black')  # Adjust the font size as needed
            ax2.tick_params(axis='y', labelsize=15, labelcolor='black')
            ax2.set_xticklabels(stats)
            ax2.legend(loc='upper center', ncols=3,fontsize=15, labelcolor='black')
            ax2.set_ylim(0, 70)
            plt.tight_layout(pad=1);
            
            
            

    subplots()        
    #'#800000'   
                                                                                                       
                                                                                                      

Field goals, 3 Points, Free-throws attempts, made and percentages¶

This shows and track player shooting efficiencies accros 5 games

In [ ]:
 
In [47]:
def fg_3pts_ft(player): 
    # Defining the fg_percent function to return data
    def fg_percent(fg_made, fg_attempted):
        if fg_attempted == 0:
            return {'sizes': [0, 100], 'labels': ['made', 'missed'], 'colors': ['#15B01A', 'red']}
        made_percentage = (fg_made / fg_attempted) * 100
        missed_percentage = 100 - made_percentage
        labels = ['made', 'missed']
        sizes = [made_percentage, missed_percentage]
        colors = ['#15B01A', 'red']
        return {'sizes': sizes, 'labels': labels, 'colors': colors}

    # Create a figure
    fig = plt.figure(figsize=(20, 18),facecolor='orange')
    style.use('ggplot')

    # Set the spacing between subplots
    plt.subplots_adjust(hspace=20) 

    # Define the grid layout
    gs = gridspec.GridSpec(6, 5, width_ratios=[1, 1, 1, 1, 1])

    # Create subplots
    ax1 = fig.add_subplot(gs[0,:])
    ax2 = fig.add_subplot(gs[1, 0])
    ax3 = fig.add_subplot(gs[1, 1])
    ax4 = fig.add_subplot(gs[1, 2])
    ax5 = fig.add_subplot(gs[1, 3])
    ax6 = fig.add_subplot(gs[1, 4])

    ax7 = fig.add_subplot(gs[2,:])  # Adjust the width for ax1
    ax8 = fig.add_subplot(gs[3, 0])
    ax9 = fig.add_subplot(gs[3, 1])
    ax10 = fig.add_subplot(gs[3, 2])
    ax11 = fig.add_subplot(gs[3, 3])
    ax12 = fig.add_subplot(gs[3, 4])

    ax13 = fig.add_subplot(gs[4,:])  # Adjust the width for ax1
    ax14 = fig.add_subplot(gs[5, 0])
    ax15 = fig.add_subplot(gs[5, 1])
    ax16 = fig.add_subplot(gs[5, 2])
    ax17 = fig.add_subplot(gs[5, 3])
    ax18 = fig.add_subplot(gs[5, 4])


    #######################################################################################
    ##########################    FIELD GOALS         #####################################
    #######################################################################################
    
    
    last_5_games = nugget_regular_season_df[nugget_regular_season_df.PLAYER == player ].tail().reset_index(drop=True)
    last_5_games["vs_opp_win_loss"] = last_5_games["Hm/Aw"]+' '+last_5_games["Opp"]+' '+last_5_games['W/L'] 
    last_5_games["GM_DAY"] = last_5_games["Date"]+' '+last_5_games["vs_opp_win_loss"]  

    
    # Melting  the DataFrame to create a clean format
    last_5_games_melted = pd.melt(last_5_games , id_vars='GM_DAY', value_vars=['FGA', 'FGM'])
    colors= ['red', 'green']
    sns.barplot(data=last_5_games_melted, x='GM_DAY', y='value', hue="variable", palette=colors, ax=ax1)

    # Add value labels on top of each bar
    for p in ax1.patches:
        height = p.get_height()

        ax1.annotate(f"{height:.0f}", (p.get_x() + p.get_width() / 2., height+2),
                    ha='center', va='center', fontsize=20, color='black', fontweight='bold')

    # Customize the plot
    ax1.set_ylim(0, 50)  # Use set_ylim instead of ylim
    ax1.set_title(f'{player} Last 5 Games Field Goals (Attempts and Made)',  fontweight='bold', color='black',fontsize=25,)
    ax1.set_xlabel('',fontsize=15, fontweight='bold', color='black')
    # Set the x-axis tick label color to purple
    ax1.tick_params(axis='x', colors='black', labelsize=15)
    #######################################################################################
    # Plot the pie chart for ax2
    data1 = fg_percent(last_5_games.iloc[0, 7], last_5_games.iloc[0, 8])
    ax2.pie(data1['sizes'], labels=data1['labels'],
            colors=data1['colors'],
            wedgeprops=dict(width=0.3),
            autopct='%1.1f%%', 
            textprops={'size': 'medium', 'color': 'black'},startangle=126)
    ax2.set_title('',fontweight='bold',fontsize=17,color='black')
    ax2.axis('equal')
    ########################################################################################

    # Plot the pie chart for ax3
    data2 = fg_percent(last_5_games.iloc[1, 7], last_5_games.iloc[1, 8])
    ax3.pie(data2['sizes'], labels=data2['labels'], 
            colors=data2['colors'], 
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%',  
            textprops={'size': 'medium', 'color': 'black'},startangle=270)
    ax3.set_title('',fontweight='bold',fontsize=17,color='black')
    ax3.axis('equal')
    #######################################################################################
    # Plot the pie chart for ax4
    data3 = fg_percent(last_5_games.iloc[2, 7], last_5_games.iloc[2, 8])
    ax4.pie(data3['sizes'], labels=data3['labels'],
            colors=data3['colors'],
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%', startangle=40,
            textprops={'size': 'medium', 'color': 'black'})
    ax4.set_title('Field Goals %',fontweight='bold',fontsize=17,color='black')
    ax4.axis('equal')
    #######################################################################################
    # Plot the pie chart for ax5
    data4 = fg_percent(last_5_games.iloc[3, 7], last_5_games.iloc[3, 8])
    ax5.pie(data4['sizes'], labels=data4['labels'], 
            colors=data4['colors'], 
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%', startangle=10,
            textprops={'size': 'medium', 'color': 'black'})
    ax5.set_title('',fontweight='bold',fontsize=17,color='black')
    ax5.axis('equal')
    #######################################################################################
    # Plot the pie chart for ax6
    data5 = fg_percent(last_5_games["FGM"][4], last_5_games["FGA"][4])
    ax6.pie(data5['sizes'], labels=data5['labels'], 
            colors=data5['colors'],
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%',
            textprops={'size': 'medium', 'color': 'black'},
            startangle=60)
    ax6.set_title('',fontweight='bold',fontsize=17,color='black')
    ax6.axis('equal')

    #######################################################################################
    ##########################       3 POINTS         #####################################
    #######################################################################################

    # Melting  the DataFrame to create a clean format
    last_5_games_melted = pd.melt(last_5_games , id_vars='GM_DAY', value_vars=['3PA', '3PM'])
    colors= ['orange', 'green']
    sns.barplot(data=last_5_games_melted, x='GM_DAY', y='value', hue="variable", palette=colors, ax=ax7)

    # Add value labels on top of each bar
    for p in ax7.patches:
        height = p.get_height()

        ax7.annotate(f"{height:.0f}", (p.get_x() + p.get_width() / 2., height+1),
                    ha='center', va='center', fontsize=20, color='black', fontweight='bold')

    # Customize the plot
    ax7.set_ylim(0, 20)  # Use set_ylim instead of ylim
    ax7.set_title(f'3 Points (Attempts and Made)',  fontweight='bold', color='black',fontsize=25,)
    ax7.set_xlabel('',fontsize=15, fontweight='bold', color='black',)
    # Set the x-axis tick label color to purple
    ax7.tick_params(axis='x', colors='black',labelsize=15)
    #######################################################################################
    # Plot the pie chart for ax8
    data6 = fg_percent(last_5_games.at[0, '3PM'], last_5_games.at[0, '3PA'])
    ax8.pie(data6['sizes'], labels=data6['labels'],
            colors=data6['colors'],
            wedgeprops=dict(width=0.3),
            autopct='%1.1f%%', 
            textprops={'size': 'medium', 'color': 'black'},startangle=126)
    ax8.set_title('',fontweight='bold',fontsize=17,color='black',pad=5)
    ax8.axis('equal')
    ########################################################################################

    # Plot the pie chart for ax3
    data7 = fg_percent(last_5_games.at[1, '3PM'], last_5_games.at[1, '3PA'])
    ax9.pie(data7['sizes'], labels=data7['labels'], 
            colors=data7['colors'], 
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%',  
            textprops={'size': 'medium', 'color': 'black'},startangle=270)
    ax9.set_title('',fontweight='bold',fontsize=17,color='black',pad=5)
    ax9.axis('equal')
    #######################################################################################
    # Plot the pie chart for ax4
    data8 = fg_percent(last_5_games.at[2, '3PM'], last_5_games.at[2, '3PA'])
    ax10.pie(data8['sizes'], labels=data8['labels'],
            colors=data8['colors'],
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%', startangle=40,
            textprops={'size': 'medium', 'color': 'black'})
    ax10.set_title('3 Points %',fontweight='bold',fontsize=17,color='black',pad=5)
    ax10.axis('equal')
    #######################################################################################

    # Plot the pie chart for ax5
    data9 = fg_percent(last_5_games.at[3, '3PM'], last_5_games.at[3, '3PA'])
    ax11.pie(data9['sizes'], labels=data9['labels'], 
            colors=data4['colors'], 
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%', startangle=10,
            textprops={'size': 'medium', 'color': 'black'})
    ax11.set_title('',fontweight='bold',fontsize=17,color='black',pad=5)
    ax11.axis('equal')
    #######################################################################################
    # Plot the pie chart for ax6
    data10 = fg_percent(last_5_games.at[4, '3PM'], last_5_games.at[4, '3PA'])
    ax12.pie(data10['sizes'], labels=data10['labels'], 
            colors=data5['colors'],
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%',
            textprops={'size': 'medium', 'color': 'black'},
            startangle=60)
    ax12.set_title('',fontsize=17,fontweight='bold',color='black',pad=5)
    ax12.axis('equal')

    #######################################################################################
    ##########################    FREE THROW        #####################################
    #######################################################################################

    # Melting  the DataFrame to create a clean format
    last_5_games_melted = pd.melt(last_5_games , id_vars='GM_DAY', value_vars=['FTA', 'FTM'])
    colors= ['red', '#00FF00']
    sns.barplot(data=last_5_games_melted, x='GM_DAY', y='value', hue="variable", palette=colors, ax=ax13)

    # Add value labels on top of each bar
    for p in ax13.patches:
        height = p.get_height()

        ax13.annotate(f"{height:.0f}", (p.get_x() + p.get_width() / 2., height+1),
                    ha='center', va='center', fontsize=20, color='black', fontweight='bold')

    # Customize the plot
    ax13.set_ylim(0, 20)  # Use set_ylim instead of ylim
    ax13.set_title('Freethrows(Attempts and Made)',  fontweight='bold', color='black',fontsize=25,)
    ax13.set_xlabel('',fontsize=15, fontweight='bold', color='black',)
    # Set the x-axis tick label color to purple
    ax13.tick_params(axis='x', colors='black',labelsize=15)
    #######################################################################################
    # Plot the pie chart for ax8
    data11 = fg_percent(last_5_games.at[0, 'FTM'], last_5_games.at[0, 'FTA'])
    ax14.pie(data11['sizes'], labels=data11['labels'],
            colors=data11['colors'],
            wedgeprops=dict(width=0.3),
            autopct='%1.1f%%', 
            textprops={'size': 'medium', 'color': 'black'},startangle=126)
    ax14.set_title('',fontweight='bold',fontsize=17,color='black',pad=5)
    ax14.axis('equal')
    ########################################################################################

    # Plot the pie chart for ax3
    data12 = fg_percent(last_5_games.at[1, 'FTM'], last_5_games.at[1, 'FTA'])
    ax15.pie(data12['sizes'], labels=data12['labels'], 
            colors=data12['colors'], 
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%',  
            textprops={'size': 'medium', 'color': 'black'},startangle=270)
    ax15.set_title('',fontweight='bold',fontsize=17,color='black',pad=5)
    ax15.axis('equal')
    #######################################################################################
    # Plot the pie chart for ax4
    data13 = fg_percent(last_5_games.at[2, 'FTM'], last_5_games.at[2, 'FTA'])
    ax16.pie(data13['sizes'], labels=data13['labels'],
            colors=data13['colors'],
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%', startangle=40,
            textprops={'size': 'medium', 'color': 'black'})
    ax16.set_title('Freethrows %',fontweight='bold',fontsize=17,color='black',pad=5)
    ax16.axis('equal')
    #######################################################################################

    # Plot the pie chart for ax5
    data14 = fg_percent(last_5_games.at[3, 'FTM'], last_5_games.at[3, 'FTA'])
    ax17.pie(data14['sizes'], labels=data14['labels'], 
            colors=data14['colors'], 
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%', startangle=10,
            textprops={'size': 'medium', 'color': 'black'})
    ax17.set_title('',fontweight='bold',fontsize=17,color='black',pad=5)
    ax17.axis('equal')
    #######################################################################################
    # Plot the pie chart for ax6
    data15 = fg_percent(last_5_games.at[4, 'FTM'], last_5_games.at[4, 'FTA'])
    ax18.pie(data15['sizes'], labels=data15['labels'], 
            colors=data15['colors'],
            wedgeprops=dict(width=0.3), 
            autopct='%1.1f%%',
            textprops={'size': 'medium', 'color': 'black'},
            startangle=60)
    ax18.set_title('',fontsize=17,fontweight='bold',color='black',pad=5)
    ax18.axis('equal')
    ######################################################################################


    # Adjust layout
    #plt.tight_layout()
    fig.tight_layout(pad=1)

    # Show the plot
    plt.show()

    #xx-small, x-small, small, medium, large, x-large, xx-large, larger, smaller

Scoring Pattern Distribution¶

In [ ]:
 
In [53]:
def last_10_games(player, nugget_regular_season_df):
    # Create a figure
    fig = plt.figure(figsize=(30, 15), facecolor='green')
    style.use('dark_background')

    # Set the spacing between subplots
    plt.subplots_adjust(hspace=0.3, wspace=0.2)  # Adjust the value as needed

    # Define the grid layout you want to use
    gs = gridspec.GridSpec(2, 5, width_ratios=[1, 1, 1, 1, 1])

    # Set the overall title for the figure
    fig.suptitle(f"{player}'s Scoring Pattern Distribution Over The Last 10 Games", color='orange', fontsize=30, fontweight='bold')

    # Prepare the data
    last_10_games = nugget_regular_season_df[nugget_regular_season_df.PLAYER == player ].tail(10).reset_index(drop=True)
    last_10_games["vs_opp_win_loss"] = last_10_games["Hm/Aw"]+' '+last_10_games["Opp"]+' '+last_10_games['W/L'] 
    last_10_games["GM_DAY"] = last_10_games["Date"]+' '+last_10_games["vs_opp_win_loss"]
    pie_df = last_10_games[["GM_DAY",'PLAYER',  '3PM', '2PM', 'FTM','Pts'  ]]
    #pie_df = pie_concat_df[['Country', '3PM', '2PM', 'FTM']].reset_index(drop=True)

    pie_df.loc[:, "3PM"] = pie_df["3PM"] * 3
    pie_df.loc[:, "2PM"] = pie_df["2PM"] * 2



    last_ten_games = pie_df

 
    # Create subplots
    axes = [
        fig.add_subplot(gs[0, 0], facecolor='black'),
        fig.add_subplot(gs[0, 1], facecolor='black'),
        fig.add_subplot(gs[0, 2], facecolor='black'),
        fig.add_subplot(gs[0, 3], facecolor='black'),
        fig.add_subplot(gs[0, 4], facecolor='black'),
        fig.add_subplot(gs[1, 0], facecolor='black'),
        fig.add_subplot(gs[1, 1], facecolor='black'),
        fig.add_subplot(gs[1, 2], facecolor='black'),
        fig.add_subplot(gs[1, 3], facecolor='black'),
        fig.add_subplot(gs[1, 4], facecolor='black')
    ]

    # Define colors
    cmaps = ["Reds", "Reds", "Blues", "Reds", "Reds", "Blues", "Blues", "Reds", "Blues", "Blues"]
    labels = ['3PM', '2PM', 'FTM']

    # Plot the pie charts
    for i, ax in enumerate(axes):
        if i < len(last_ten_games):
            piechart_df = last_ten_games.loc[i, labels]
            cmap = plt.get_cmap(cmaps[i % len(cmaps)])  
            colors = cmap([0.1, 0.5, 0.9])  
            
            ax.pie(piechart_df.values, autopct="%1.1f%%", labels=piechart_df.index, colors=colors, startangle=90, shadow=True, textprops={'size': 'xx-large', 'color': 'black'})
            ax.set_title(last_ten_games.loc[i, "GM_DAY"], fontweight='bold', fontsize=25, color='black')
            ax.axis('equal') 

    plt.show()
In [ ]:
 

Performance( Points, Rebounds, Assists, Blocks .....) Trend¶

In [54]:
def stats_performance_trend(player, stat, label, color):
    style.use('dark_background')
    plt.figure(figsize=(30, 7))
    
    line_df = nugget_regular_season_df[nugget_regular_season_df.PLAYER == player ].tail(20)
    nugget_line_group_df = line_df.groupby(["GM_DAY"])[['MIN','Pts','FGA','FGM','3PM','3PA',  'FTM',
                                                                       'FTA', 'OREB','REB', 'AST', 'STL',
                                                                       'BLK', 'TOV', 'PF']].sum().astype(int)
  
    # Plot the lines for each stats
    plt.plot(nugget_line_group_df.index, nugget_line_group_df[stat],  label=label, marker='o', color=color)

    # Add data labels to each point
    for x, y in zip(nugget_line_group_df.index, nugget_line_group_df[stat]):
        plt.text(x, y, str(y), ha='center', va='bottom', fontsize=15, color='white')

    #for x, y in zip(nugget_line_group_df.index,  nugget_line_group_df['Opp_PTS']):
     #   plt.text(x, y, str(y), ha='center', va='bottom', fontsize=15, color='white')

    # Customize the plot
    plt.title(f" 2024-2025 NBA Regular Season  {player} {label} last 20 games.", fontsize=25, fontweight='bold', color='white')
    plt.xlabel('Date',color='orange',fontsize=25, fontweight='bold')
    plt.xticks( rotation=30,fontsize=20, fontweight='bold',color='yellowgreen')
    plt.yticks(fontsize=20, fontweight='bold',color='white')
   
    
    
    legend = plt.legend(fontsize=30)
    for text in legend.get_texts():
        text.set_color("orange")
        text.set_fontsize(20)
        text.set_fontweight('bold')


    # Show the plot
    plt.grid()
    plt.show()
In [ ]:
 
In [ ]:
 
In [ ]:
 

Nikola Jokic¶

Statitical Summary¶

In [ ]:
len(nugget_regular_season_df[nugget_regular_season_df['PLAYER'].isin(["Nikola Jokic"])].reset_index(drop=True))
In [35]:
statistical_summary("PLAYER", "Nikola Jokic", "Nikola Jokic", "Greens")

The chart above shows the statitical summary of the Nikola Jokic's 2024/2025 regular season. These colors represent different levels of performance.

Current Regular season performace:

  1. Points (Pts):
    • He averaged 31.5 points per game.
    • His highest-scoring game was 56 points loss against Washington DC on 2024-12-08, while the lowest-scoring game was 16 points loss vs OKC on 2024-10-25.
  1. Field Goals (FG):

    • Jokic in this regular season is recordind an average of 11 field goals made per game.
    • His best game saw 22 successful field goals made, while his lowest made had only 6.
    • His highest FG% saw 84.6% win against Miami Heats on 2024-11-09 and lowest 42.1% win against Sacramento Kings on 2024-12-17
  2. AST (AST):

    • On average, the Nuggets secured 9 Assists per game.
    • His best game had 16 assists win @ BRK on 2024-10-30, while his lowest assists saw 2 win vs Los Angeles Clippers on 2024-12-14.
  1. Total Rebounds (TRB):
    • He averaged 13 rebounds per game.
    • His highest rebound count was 20 win vs OKC on 2024-11-07, and his lowest was 7 loss vs Newyork Knicks on 2024-11-26.

This statitical summary provides a comprehensive overview of Nikola Jokic's performance across various metrics during the regular season. 🏀🔥

In [ ]:
 

Performance Trend¶

In [34]:
performance_trend(nugget_regular_season_df, 'Nikola Jokic','Reds')

Performance Trends¶

  • The heatmap above displays various basketball statistics, including points (PTS), rebounds (REB), assists (AST), field goals made (FGM), three-pointers made (3PM), free throws made (FTM), and the likes.
  • Each row corresponds to a different game, with dates and opposing teams listed on the left.
  • The intensity of colors reflects Gordon's performance in each statistical category for that game.

Highest-scoring game:¶

Washington DC (December 08, 2024):

  • Jokic in this current season recorded his highest points total of 56 points in a game against Washington DC , which took place on the road.

Lowest-scoring games:¶

Oklahoma City Thunders (October 24 and December 14, 2024): -With an opening game for the denver nuggets jokic recorded his first tripple double of the season playing 35 minutes, scored 16 points and 12 rebounds and 13 assists. Also, against th LA Clippers, he recorded 16 points, 7 rebounds and 2 assists.

Rebounds¶

Oklahoma City Thunders and Cleveland Cavaliers (November 7, 2024 and December 06, 2024):

  • Highest rebounds of the regular season 20

Phoenix Suns (December 24, 2024):

  • Win vs Phoenix Suns with rebounds as low as 2.

Scoring Performance: Jokic's scoring ability is highlighted by his 56-points game against the Washington DC, indicating a strong offensive performance. However, this contrasts with two low-scoring games where he only scored 2 points against both the Houston Rockets and Boston Celtics, despite playing significant minutes (39 and 41 respectively). This suggests inconsistency in scoring.

Playing Time: Gordon's playing time does not seem to correlate directly with his scoring, as seen in the games against the Rockets and Celtics where he played a lot of minutes but scored 2 points each.

Rebounding Ability: His rebounding performance shows variability. He secured a season-high 15 rebounds against the Sacramento Kings. Yet, there was a game against the Indiana Pacers where he only managed 1 rebound in 32 minutes, which could point to an off night or strong opposition defense.

Overall Assessment: Gordon shows potential for high-scoring games and strong rebounding but also has instances of low productivity. This could be due to various factors such as the opposing team's defense, his physical condition during the games, or the strategies employed by his own team.

In [ ]:
 
In [37]:
players_df = nugget_regular_season_df[nugget_regular_season_df['PLAYER'].isin(['Nikola Jokic'])]

Season Average¶

In [ ]:
nugget_regular_season_df.groupby(['PLAYER'])['AST'].mean()
In [41]:
annotation_text = (
   "This Joker is having another outstanding season in 2024-25!\n"
    "Here are some of his key stats so far:\n"
    "15,000 + career points in NBA\n"
    "- Average Points per Game (PTS): 31.5 (1st in the league)\n"
    "- Rebounds per Game (REB): 13.0 (3rd in the league)\n"
    "- Assists per Game (AST): 9.7 (2nd in the league)\n"
    "- Field Goal Percentage (FG%): 56.2\n"
    "- Three-Point Percentage (3P%): 49.6\n"
    "- Efficiency Per Game (EFF) 42.4 (1st in the league)\n"
    "- Triple-Doubles: 14 in 31 games (1st in the league)\n"
    "- Double-Doubles: 11 in 31 games\n"
    "Jokic continues to be a dominant force,\n"
    "and a turbo engine for the nuggets also leading the league\n"
    "in player efficiency rating.\n" 
    "He's also in the MVP race.\n "
    "It's impressive to see him maintain such high performance\n"
    "levels consistently. "
    "Do you think he'll win the MVP this season?"
)

season_average("Nikola Jokic", "nikola.jpg", annotation_text, "yellow", plt.get_cmap("Wistia"))
In [ ]:
 

Tripple Double And Double Double Performance Trend¶

In [42]:
triple_double_df = tripple_double_double('Nikola Jokic')
triple_double_overview()
Total triple-double performances for Nikola Jokic: 14
Total double-double performances for Nikola Jokic: 11

The chart lists game dates and Jokic's triple-double stats for each game, showcasing his consistent high performance in points, rebounds, and assists throughout the season.

In [ ]:
 

Overall Performance¶

In [44]:
total_stats = players_total_stats("PLAYER", "Nikola Jokic")
overall_stats("Nikola Jokic", 1500)

Nikola Jokic's 2024/2025 regular season performance based on the aggregate sum of his statistical features:

  1. Points (PTS): Scored a total of 977 points in this season.
  2. Assists: Recorded a total assist of 301 which is making him second in the league in this season.
  3. Field Goals Percentage (FG%): Percentage field goals success is 5% above 50%, meaning he scored more than half of his FGAs.
  4. Three-Point Shots Attempted (3PA): 149 three-point shots attempted .
  5. Three-Point Shots Made (3P): Successfully made 71 three-point shots.
  6. Three-Point Percentage (3P%): Good 3 points shooting performance in this regular season.

These statistics provide a snapshot of the Nikola Jokic's performance across various aspects of the game. 🏀🏀🐼👨‍💻

Home and Away Games Performance Insights:¶

In [50]:
home_away_performances("Nikola Jokic") 

Home Court: Nikola Jokic seems to perform slightly better in terms of scoring when playing at away games. He scored more points at away compared to home and grabbed 20 total rebounds each both home and away. 16 assists each.

Offensive Effort: Nikola Jokic appears to performed some what equally in both home and away games in terms of total (Rebounds, Assists and Blocks).

Overall, Nikola Jokic's performance metrics indicate that his efficiency at home is higher than his away performance, but in scoring, he recorded more away points in total. However, his rebounding, assists and blocks in away games are both equal.

In [ ]:
 

Field goals, 3 Points, Free-throws attempts, made and percentages¶

In [51]:
fg_3pts_ft("Nikola Jokic")

Scoring Pattern Distribution¶

In [55]:
last_10_games('Nikola Jokic', nugget_regular_season_df)

The image displays Nikola Jokic's scoring pattern distribution over the last 10 games, represented by pie charts for each game. Each chart is divided into three sections: 3PM (three-point made), 2PM (two-point made), and FTM (free throws made). Here’s a detailed analysis of the data:

Analysis:¶

  1. Consistency in Two-Point Shots: Jokic’s scoring is heavily reliant on two-point shots, consistently making up the majority of his points in each game. This indicates a strong inside game and mid-range shooting ability.

  2. Three-Point Shooting: The percentage of points from three-pointers varies significantly, with the highest being 37.5% and the lowest being 0.0%. Improving consistency in three-point shooting could make Jokic’s scoring more versatile and unpredictable.

  3. Free Throws: The contribution of free throws to Jokic’s scoring is relatively low, with the highest being 22.9% and the lowest being 3.7%. Increasing free throw attempts and accuracy could add valuable points, especially in close games.

Recommendations:¶

  1. Enhance Three-Point Shooting: Focus on improving three-point shooting consistency to add another dimension to Jokic’s scoring.

  2. Increase Free Throw Attempts: Work on drawing more fouls and improving free throw accuracy to capitalize on easy scoring opportunities.

  3. Maintain Strong Inside Game: Continue to leverage the strong two-point shooting, which is a significant part of Jokic’s scoring arsenal.

  4. Balanced Scoring Approach: Aim for a balanced scoring approach, ensuring that Jokic can adapt to different defensive strategies and maintain scoring efficiency.

These insights and recommendations should help in understanding Jokic's scoring patterns and identify areas for potential improvement.

In [ ]:
 

Performance( Points, Rebounds, Assists, Blocks .....) Trend¶

In [56]:
stats_performance_trend("Nikola Jokic", 'Pts', 'Points', 'green') 
stats_performance_trend("Nikola Jokic", 'REB', 'Rebounds', 'green') 
stats_performance_trend("Nikola Jokic", 'AST', 'Assists', 'green') 
stats_performance_trend("Nikola Jokic", 'BLK', 'Blocks', 'green') 
stats_performance_trend("Nikola Jokic", 'TOV', 'Turnovers', 'green') 

Line Chart depicting the performances of metric like Points, Rebounds, Assists, Steals and Turnovers across the last 20 games played

High Scoring Peaks: Jokic has several high-scoring games, with peaks around 56 points on December 8, 2024, 49 points on December 9 and 46 January 5, 2025. These peaks indicate his ability to deliver standout performances.

Consistency: Despite some fluctuations, Jokic consistently scores in the mid-20s to low-30s range, showing his reliability as a scorer.

Variability: There are a few games where his points dip significantly, suggesting possible defensive strategies by opponents or off-nights.

Recommendations:¶

  • Analyzing High-Scoring Games: Study the conditions and strategies during high-scoring games to replicate success.
  • Address Low-Scoring Games: Identify factors contributing to lower scores and develop counter-strategies.
  • Maintain Consistency: Continue focusing on consistent scoring techniques and maintaining physical and mental fitness.

Inferences¶

  1. Consistent High Performance: Nikola Jokic consistently achieves high points, rebounds, and assists across multiple games, indicating his reliability and versatility as a player.

  2. Field Goal Efficiency: Jokic's field goal percentages are generally high, with notable performances in games against teams like Utah and Spurs in the last 5 games. This suggests strong shooting accuracy.

  3. Rebounding Strength: Jokic frequently records double-digit rebounds, showcasing his dominance in securing the ball and contributing to his team's possession.

  4. Assist Contribution: His assist numbers are also impressive, highlighting his playmaking abilities and his role in facilitating team offense.

Recommendations:¶

  • Maintain Focus on Strengths: Continue leveraging Jokic's scoring, rebounding, and playmaking abilities to maximize team performance.
  • Analyze Opponent Strategies: Studying games with lower performance to identify defensive strategies used by opponents and develop countermeasures.
  • Enhance Team Coordination: Encourage team plays that capitalize on Jokic's strengths, such as pick-and-rolls and inside-out plays, to create more scoring opportunities.
In [ ]:
 

Aaron Gordon¶

In [ ]:
performance_trend(nugget_regular_season_df, 'Aaron Gordon','viridis_r')
In [ ]:
 

Jamal Murray¶

In [ ]:
performance_trend(nugget_regular_season_df, 'Jamal Murray','viridis_r')
In [ ]:
 

Michael Porter¶

In [ ]:
len(nugget_regular_season_df[nugget_regular_season_df['PLAYER'].isin(["Michael Porter"])].reset_index(drop=True))
In [ ]:
performance_trend(nugget_regular_season_df, 'Michael Porter','Reds')

Overall Performance¶

In [ ]:
total_stats = players_total_stats("PLAYER", "Michael Porter")
overall_stats("Michael Porter",  1000)

Season Average¶

In [ ]:
nugget_regular_season_df.groupby(['PLAYER'])['EFF'].mean()
In [ ]:
annotation_text = (
   "The One time NBA Champion Michael Porter in this season with the nuggets so far.\n"
    "Here are some of his average stats so far:\n"
    "- Average Points per Game (PTS): 19.1 \n"
    "- Rebounds per Game (REB): 6.5 \n"
    "- Assists per Game (AST): 2.6\n"
    "- Field Goal Percentage (FG%): 52.4\n"
    "- Three-Point Percentage (3P%): 43.3\n"
    "- Free Throw Percentage (FT%): 63.0\n"
    "- Efficiency Per Game (EFF) 20.6\n"
    "- Double-Doubles: 5\n"
    "Micheal Porter continues to be a contributing force,\n"
)

season_average("Michael Porter", "denver.jpg", annotation_text, "yellow", plt.get_cmap("winter"))

Home And Away Performance¶

In [ ]:
home_away_performances("Michael Porter") 

Triple Double Double Double¶

In [ ]:
tripple_double_double("Michael Porter")
In [ ]:
fg_3pts_ft("Michael Porter")
last_10_games('Michael Porter', nugget_regular_season_df)
In [ ]:
 
In [ ]:
stats_performance_trend("Michael Porter", 'Pts', 'Points', 'green') 
stats_performance_trend("Michael Porter", 'REB', 'Rebounds', 'green') 
stats_performance_trend("Michael Porter", 'AST', 'Assists', 'green') 
stats_performance_trend("Michael Porter", 'BLK', 'Blocks', 'green')
stats_performance_trend("Michael Porter", 'TOV', 'Turnovers', 'green') 
In [ ]:
 
In [ ]:
 

Christian Braun¶

In [ ]:
performance_trend(nugget_regular_season_df, 'Christian Braun','viridis_r')
In [ ]:
 

Russell Westbrook¶

Performance Trend¶

In [ ]:
len(nugget_regular_season_df[nugget_regular_season_df['PLAYER'].isin(["Russell Westbrook"])].reset_index(drop=True))
In [ ]:
performance_trend(nugget_regular_season_df, 'Russell Westbrook','Reds')
In [ ]:
 

Overall Performance¶

In [ ]:
total_stats = players_total_stats("PLAYER", "Russell Westbrook")
overall_stats("Russell Westbrook",  700)

Season Average¶

In [ ]:
annotation_text = (
   "This triple double king is having a good season with the nuggets so far.\n"
    "Starting off the the bench in most games,\n"
    "His playing styles correltes with the nugget's\n"
    "Here are some of his avearge stats so far:\n"
    "- Average Points per Game (PTS): 12.0 \n"
    "- Rebounds per Game (REB): 4.6 \n"
    "- Assists per Game (AST): 6.6\n"
    "- Field Goal Percentage (FG%): 45.4\n"
    "- Three-Point Percentage (3P%): 31.6\n"
    "- Free Throw Percentage (FT%): 63.0\n"
    "- Efficiency Per Game (EFF) 16.4\n"
    "- Triple-Doubles: 2\n"
    "- Double-Doubles: 4\n"
    "Russell Westbrook continues to be a contributing force,\n"
    "especially on defensive end for the nuggets.\n"
    "It's impressive to see him maintain such high performance\n"
    "levels consistently. "
 
)

season_average("Russell Westbrook", "denver.jpg", annotation_text, "yellow", plt.get_cmap("winter_r"))
In [ ]:
nugget_regular_season_df.groupby(['PLAYER'])['EFF'].mean()

Home and Away Performance¶

In [ ]:
home_away_performances("Russell Westbrook") 

Triple Double And Double Double Performance¶

In [ ]:
tripple_double_double("Russell Westbrook")
In [ ]:
 
In [ ]:
fg_3pts_ft("Russell Westbrook")
last_10_games('Russell Westbrook', nugget_regular_season_df)
In [ ]:
 
In [ ]:
stats_performance_trend("Russell Westbrook", 'Pts', 'Points', 'green') 
stats_performance_trend("Russell Westbrook", 'REB', 'Rebounds', 'green') 
stats_performance_trend("Russell Westbrook", 'AST', 'Assists', 'green') 
stats_performance_trend("Russell Westbrook", 'BLK', 'Blocks', 'green')
stats_performance_trend("Russell Westbrook", 'TOV', 'Turnovers', 'green') 

Watson Payton¶

In [ ]:
stats_performance_trend("Peyton Watson", 'MIN', 'Minutes', 'green') 
stats_performance_trend("Peyton Watson", 'Pts', 'Points', 'green') 
stats_performance_trend("Peyton Watson", 'REB', 'Rebounds', 'green') 
stats_performance_trend("Peyton Watson", 'AST', 'Assists', 'green') 
stats_performance_trend("Peyton Watson", 'BLK', 'Blocks', 'green') 
stats_performance_trend("Peyton Watson", 'TOV', 'Turnovers', 'green') 
In [ ]:
 

Point Contribution Per Game Distribution¶

In [57]:
players_df = nugget_regular_season_df[nugget_regular_season_df['Date'].isin(['2025-01-09'])]


players_df = players_df.groupby(["PLAYER"])[['MIN','Pts','REB','AST', 'BLK',
                                                    'TOV', 'FGA', 'FGM',
                                                    '3PA', '3PM','2PM','2PA',"OREB","DREB", 
                                                    'FTA', 'FTM', 'PF','+/-','EFF']].sum().astype(int).sort_values(by='Pts',ascending=False)#.head(10)
players_df
Out[57]:
MIN Pts REB AST BLK TOV FGA FGM 3PA 3PM 2PM 2PA OREB DREB FTA FTM PF +/- EFF
PLAYER
Jamal Murray 34 21 3 9 1 2 13 7 6 4 3 7 0 3 3 3 1 24 27
Michael Porter 27 19 8 2 0 2 12 8 5 3 5 7 0 8 0 0 1 15 24
Russell Westbrook 29 19 6 8 0 3 16 8 5 1 7 11 2 4 5 2 3 18 19
Julian Strawther 32 16 4 2 0 1 10 5 8 4 1 2 0 4 2 2 3 18 16
Christian Braun 28 15 2 1 0 0 8 6 2 2 4 6 0 2 1 1 4 11 17
DeAndre Jordan 23 12 9 2 0 0 6 5 0 0 5 6 2 7 3 2 2 17 23
Peyton Watson 24 9 4 1 2 1 10 4 2 0 4 8 0 4 3 1 3 17 8
Dario Saric 20 7 7 2 0 2 8 3 4 1 2 4 3 4 0 0 2 11 10
Jalen Pickett 4 6 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 -5 6
Zeke Nnaji 4 2 0 0 0 0 1 1 0 0 1 1 0 0 0 0 2 -5 2
Hunter Tyson 9 0 1 0 0 0 1 0 0 0 0 1 0 1 0 0 3 -1 0
Trey Alexander 4 0 1 2 0 0 2 0 1 0 0 1 0 1 0 0 0 -5 1
In [58]:
style.use("dark_background")

# Calculate the percentage of each country
pct_df = players_df['Pts']
pct_df_pct = ((pct_df / pct_df.sum()) * 100).round(decimals=1)

# Create the bar plot
plt.figure(figsize=(5, 5))
bar_plot = sns.barplot(x=pct_df_pct, y=pct_df_pct.index, palette='viridis')
plt.ylabel(None)
plt.xlabel('Percentage')

# Add values on the bars
for index, value in enumerate(pct_df_pct):
    plt.text(value + 5, index, f'{value}%', va='center', ha='center', fontsize=12, fontweight='bold', color='orange')

plt.title('Percentage Distribution of Points vs Atlanta Hawks 2025-01-02', fontsize=15, fontweight='bold', color='white', pad=20)
plt.xticks(fontsize=14, color='yellowgreen')
plt.yticks(fontsize=14, color='yellowgreen')
plt.grid(False)

# Remove the rectangular borderlines
for spine in bar_plot.spines.values():
    spine.set_visible(False)

plt.tight_layout()
plt.show()
In [ ]: